Dalam git, anda boleh menggunakan perintah "git commit --amend" untuk mengubah suai masa komit; kaedah ini bukan sahaja boleh mengubah suai tarikh penyerahan terbaharu, tetapi juga mengubah suai tarikh penyerahan yang ditentukan , dan format tarikh Ia perlu dalam format "ISO-8601" dan sintaksnya ialah "GIT_COMMITTER_DATE="time" git commit --amend --date="time"".
Persekitaran pengendalian artikel ini: sistem Windows 10, Git versi 2.30.0, komputer Dell G3.
1 Ubah suai tarikh pengarang dan tarikh penyerah komit terkini
Jika anda ingin mengubah suai. pengarang komit terkini Untuk tarikh dan tarikh penyerah, hanya gunakan git commit --pindaan
Nota: Format tarikh mestilah format ISO-8601
GIT_COMMITTER_DATE="2017-10-08T09:51:07" git commit --amend --date="2017-10-08T09:51:07"
2. Ubah suai tarikh pengarang dan tarikh pengarang penyerahan tertentu
Jika anda ingin menukar tarikh pengarang dan tarikh komit tertentu (yang boleh menjadi yang terbaharu atau tidak terkini), anda boleh menggunakan interaktif rebase:
Laksanakan git rebase -i COMMIT_SHA ini ialah COMMIT_SHA komit sebelumnya bagi komit yang akan diubah suai sebelum komit tarikh yang diubah suai e
Laksanakan arahan pengubahsuaian tarikh GIT_COMMITTER_DATE="2017-10-08T09:51:07" git commit --amend --date="2017 -10-08T09:51:07 "
Laksanakan git rebase --teruskan ke komit seterusnya
Ulang proses ini sehingga diubah suai Semua penyerahan. Kemajuan boleh dilihat melalui status git.
Maklumat penyerahan log git semasa adalah seperti berikut
Anggapkan 6b98331 mengubah suai perlu diubah suai pada masa ini Readme.md 2 Tarikh pengarang dan tarikh penyerah komit ini Langkah pengubahsuaian ialah: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
Laksanakan arahan rebase interaktif git rebase -i 98ddd80
Dalam pop timbul Dalam maklumat penyuntingan vi, tukar pilihan sebelum penyerahan 6b98331 kepada e, dan kemudian laksanakan: wq untuk menyimpan
Laksanakan GIT_COMMITTER_DATE="2021-10-22T15: 10:07" git commit --amend -- date="2021-10-22T15:10:07" menukar kedua-dua tarikh pengarang dan tarikh penyerah kepada 2021-10-22T15:10:07. Kemudian anda boleh memilih untuk mengubah suai log komit dalam tetingkap penyuntingan maklumat vi pop timbul, kemudian laksanakan :wq untuk menyimpan dan kemudian laksanakan git rebase --terus pergi ke komit seterusnya sehingga semua perubahan disimpan . Selepas selesai, gunakan git log untuk melihat maklumat penyerahan dan anda akan melihat bahawa maklumat penyerahan telah diubah suaie 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's log message # x, exec <command> = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # 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'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.
Log lengkap contoh di atas adalah seperti berikut:
Pembelajaran yang disyorkan : "Tutorial Git
》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
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai masa komit dalam git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!