Maison  >  Article  >  outils de développement  >  Comment modifier le temps de validation dans git

Comment modifier le temps de validation dans git

WBOY
WBOYoriginal
2022-07-01 10:30:1215584parcourir

Dans git, vous pouvez utiliser la commande "git commit --amend" pour modifier l'heure de validation ; cette méthode peut non seulement modifier la date de la soumission la plus récente, mais également modifier la date d'une soumission spécifiée, où le format de la date doit être au format "ISO -8601", la syntaxe est "GIT_COMMITTER_DATE="time" git commit --amend --date="time"".

Comment modifier le temps de validation dans git

L'environnement d'exploitation de cet article : système Windows 10, Git version 2.30.0, ordinateur Dell G3.

Comment modifier l'heure du commit dans git

1 Modifiez la date de l'auteur et la date du demandeur du dernier commit

Si vous souhaitez modifier la date de l'auteur et la date du demandeur du dernier commit, utilisez simplement git commit - -amend

Remarque : Le format de date doit être au format ISO-8601

GIT_COMMITTER_DATE="2017-10-08T09:51:07" git commit --amend --date="2017-10-08T09:51:07"

2 Modifiez la date de l'auteur et la date de l'auteur d'une certaine soumission

Si vous souhaitez changer l'auteur d'une certaine soumission (cela peut. être le plus récent ou non) Date et date de soumission, vous pouvez utiliser le rebase interactif :

  • Exécutez git rebase -i COMMIT_SHA est le commit sha du commit précédent du commit à modifier

  • .
  • sera affiché dans les informations interactives contextuelles vi. Le choix avant la validation de la date modifiée est modifié en e

  • Exécutez la commande de modification de date GIT_COMMITTER_DATE="2017-10-08T09:51:07" git. commit --amend --date="2017-10-08T09:51:07 "

  • Exécutez git rebase --continuez pour passer au prochain commit

  • Répétez ce processus jusqu'à ce que tous les commits soient modifiés. Les progrès peuvent être consultés via le statut git.

3. Exemple de modification

Les informations actuelles de soumission du journal git sont les suivantes

admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git log --oneline
2fe64c4 (HEAD -> master) modify Readme.md 3
6b98331 modify Readme.md 2
98ddd80 modify Readme.md 1
fcfc064 add Readme.md

Supposons que la date de l'auteur et la date de l'auteur du commit 6b98331 modifient Readme.md 2 doivent être modifiées à ce moment-là

Les étapes de modification sont :

Exécutez la commande de rebase interactive git rebase -i 98ddd80

Dans les informations d'édition pop-up vi, remplacez le choix avant la soumission de 6b98331 par e, puis exécutez : wq Save

e  6b98331 modify Readme.md 2      # 此处原为pick,将pick修改为e / edit
pick 2fe64c4 modify Readme.md 3
# Rebase 98ddd80..2fe64c4 onto 98ddd80 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit&#39;s log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with &#39;git rebase --continue&#39;)
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit&#39;s
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.

Exécutez GIT_COMMITTER_DATE= "2021-10-22T15:10:07" git commit --amend --date="2021-10-22T15:10:07" Modifie à la fois la date de l'auteur et la date de l'auteur au 2021-10-22T15:10:07. Ensuite, vous pouvez choisir de modifier le journal de validation dans la fenêtre contextuelle d'édition des informations de vi, puis d'exécuter :wq pour enregistrer

, puis d'exécuter git rebase --continuez pour passer au prochain commit jusqu'à ce que toutes les modifications soient enregistrées. Une fois terminé, utilisez git log pour afficher les informations de soumission et vous verrez que les informations de soumission ont été modifiées

Le journal complet de l'exemple ci-dessus est le suivant :

admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git log --oneline
2fe64c4 (HEAD -> master) modify Readme.md 3
6b98331 modify Readme.md 2
98ddd80 modify Readme.md 1
fcfc064 add Readme.md
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git rebase -i 98ddd80
Stopped at 6b98331...  modify Readme.md 2
You can amend the commit now, with
  git commit --amend
Once you are satisfied with your changes, run
  git rebase --continue
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master|REBASE 1/2)
$ GIT_COMMITTER_DATE="2021-10-22T15:10:07" git commit --amend --date="2021-10-22T15:10:07"
[detached HEAD 137f41d] modify Readme.md 2
 Date: Fri Oct 22 15:10:07 2021 +0800
 1 file changed, 16 insertions(+)
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master|REBASE 1/2)
$ git status
interactive rebase in progress; onto 98ddd80
Last command done (1 command done):
   edit 6b98331 modify Readme.md 2
Next command to do (1 remaining command):
   pick 2fe64c4 modify Readme.md 3
  (use "git rebase --edit-todo" to view and edit)
You are currently editing a commit while rebasing branch 'master' on '98ddd80'.
  (use "git commit --amend" to amend the current commit)
  (use "git rebase --continue" once you are satisfied with your changes)
nothing to commit, working tree clean
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master|REBASE 1/2)
$ git rebase --continue
Successfully rebased and updated refs/heads/master.
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git status
On branch master
nothing to commit, working tree clean

Apprentissage recommandé : "Tutoriel Git"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn