Rumah >alat pembangunan >git >Bagaimana untuk mengubah suai masa komit dalam git

Bagaimana untuk mengubah suai masa komit dalam git

WBOY
WBOYasal
2022-07-01 10:30:1215595semak imbas

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"".

Bagaimana untuk mengubah suai masa komit dalam git

Persekitaran pengendalian artikel ini: sistem Windows 10, Git versi 2.30.0, komputer Dell G3.

Cara mengubah suai masa komit dalam git

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.

  • 3. Contoh pengubahsuaian

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 suai
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.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn