Comment modifier les dates de validation de git
Pas à pas : installer git-edit-date, export votre branche vers CSV, modifiez les dates dans une feuille de calcul, réécrivez apply et poussez en toute sécurité.
Quand tu as besoin de ça
- Les commits affichent les horodatages UTC d'un exécuteur CI au lieu de votre fuseau horaire local
- La dérive de l'horloge de l'ordinateur portable a laissé un bloc de commits au mauvais moment
- L'adresse e-mail ou le nom de l'auteur est erroné dans de nombreux commits sur une branche de fonctionnalités
- Vous souhaitez examiner chaque changement de date dans une feuille de calcul avant de réécrire l'historique
Étape 1 — Exporter la branche
Depuis votre repo, sur la branche que vous souhaitez réécrire :
git-edit-date export -o commits.csv
Ceci exporte l'historique actuel de la branche (git rev-list --reverse HEAD)
dans un fichier CSV. Seuls les commits accessibles depuis HEAD sont inclus.
Étape 2 — Modifiez le CSV
Open commits.csv dans Excel, LibreOffice Calc ou n'importe quel éditeur de feuille de calcul.
Colonnes CSV
hash— commit original SHA (référence uniquement ; ne pas modifier)author_name— Nom d'affichage de l'auteur du commitauthor_email— e-mail de l'auteur du commitauthor_date— la date à laquelle le travail a été initialement effectué (RFC3339)committer_date— quand l'objet de validation a été créé (RFC3339)message— commit message (référence uniquement ; non modifié sur apply)
Les dates utilisent le format RFC3339, par exemple 2024-03-05T14:30:00+01:00.
Dans la plupart des cas, vous souhaitez author_date and committer_date pour correspondre.
Voir le FAQ sur la date de l'auteur par rapport à la date du contributeur.
author_email,author_date,committer_date
alice@wrong.com,2024-03-06T03:14:00Z,2024-03-06T03:14:00Z
author_email,author_date,committer_date
alice@work.com,2024-03-05T14:30:00+01:00,2024-03-05T14:30:00+01:00
Vous ne pouvez modifier que certaines lignes : les lignes inchangées conservent leurs métadonnées d'origine. Enregistrez le fichier sous CSV une fois terminé.
Étape 3 — Appliquer et pousser
L'application nécessite un arbre de travail propre, sauf si vous réussissez -allow-dirty:
git-edit-date apply -file=commits.csv
Vérifiez le résultat :
git log --format=fuller -3
Si la branche a déjà été poussée, mettez à jour la télécommande en toute sécurité :
git push --force-with-lease
Liste de contrôle de poussée sécurisée
- Confirmez que vous êtes sur la bonne succursale (
git branch --show-current) - Assurez-vous que personne d'autre ne pousse activement vers cette branche
- Use
--force-with-lease, pas nu--force - Ne réécrivez jamais les branches partagées ou protégées sans l’accord de l’équipe
- Attendez-vous à ce que les signatures GPG sur les validations réécrites deviennent invalides
Installer git-edit-date
curl -LO https://giteditdate.com/git-edit-date_amd64.deb
sudo dpkg -i git-edit-date_amd64.deb
Référence de la commande : Documents CLI · Questions courantes : FAQ · Guides : plusieurs commits, date de l'auteur