281 votes

Comment faire un commit Git dans le passé ?

Je suis en train de tout convertir à Git pour mon usage personnel et j'ai trouvé d'anciennes versions d'un fichier déjà dans le dépôt. Comment puis-je le commiter dans l'historique dans l'ordre correct selon la "date de modification" du fichier afin d'avoir un historique précis du fichier ?

On m'a dit que quelque chose comme ça marcherait :

git filter-branch --env-filter="GIT_AUTHOR_DATE=... --index-filter "git commit path/to/file --date " --tag-name-filter cat -- --all

1 votes

Réponses courtes et simples : stackoverflow.com/a/34639957/2708266

58 votes

Je me demande si les personnes qui cherchent la réponse à cette question veulent simplement maintenir leur "série de contributions" sur GitHub de cette façon.

10 votes

@ZitRo oui. Et il suffit de mettre git commit --date="xxx day ago" -m "yyy" est suffisant à cet effet si quelqu'un se pose la question.

1voto

Vidit Varshney Points 70

Pré-étape.

  • Transférer toutes les données de l'entrepôt distant vers l'entrepôt local.

  • nous utilisons les commutateurs --amend et --date.

La commande exacte est la suivante :

$ git commit --amend --date="YYYY-MM-DD HH:MM:SS"

1voto

okwap Points 386
  1. git --date changements seulement GIT_AUTHOR_DATE mais beaucoup d'applications git, par exemple GitHub, affichent GIT_COMMITTER_DATE . Assurez-vous de changer GIT_COMMITTER_DATE aussi.
  2. git ne tient pas compte du fuseau horaire dans la sortie de la date UNIX par défaut. Assurez-vous de formater le format de la date dans un format compatible tel que ISO8601.

Exemple complet sous OS X (Changez les deux GIT_COMMITTER_DATE y GIT_AUTHOR_DATE à il y a 4 heures) :

x=$(date -v -4H +%Y-%m-%dT%H:%M:%S%z); export GIT_COMMITTER_DATE=$x; git commit --amend --date $x

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X