這篇文章主要介紹“git如何修改commit時(shí)間”,在日常操作中,相信很多人在git如何修改commit時(shí)間問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”git如何修改commit時(shí)間”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)臺(tái)兒,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18980820575
在git中,可以利用“git commit --amend”命令來(lái)修改commit時(shí)間;該方法既可以修改最近一次提交的日期,也可以修改指定某次提交的日期,其中日期的格式需要是“ISO-8601”格式,語(yǔ)法為“GIT_COMMITTER_DATE="時(shí)間" git commit --amend --date="時(shí)間"”。
本文操作環(huán)境:Windows10系統(tǒng)、Git2.30.0版、Dell G3電腦。
1.修改最近一次提交的作者日期和提交者日期
如果要修改最近一次commit的作者日期和提交者日期,直接使用 git commit --amend即可
注:日期格式須為ISO-8601格式
GIT_COMMITTER_DATE="2017-10-08T09:51:07" git commit --amend --date="2017-10-08T09:51:07"
2.修改某次提交的作者日期和提交者日期
如果要更改某次(可以是最近一次也可以是非最近一次)提交的作者日期和提交者日期,可以使用交互式rebase:
執(zhí)行g(shù)it rebase -i COMMIT_SHA , 此COMMIT_SHA為待修改日期的commit的前一個(gè)commit的commit sha
在vi彈出交互信息中將待修改日期的commit前的pick修改為e
執(zhí)行日期修改命令 GIT_COMMITTER_DATE="2017-10-08T09:51:07" git commit --amend --date="2017-10-08T09:51:07"
執(zhí)行 git rebase --continue轉(zhuǎn)到下一個(gè)commit
重復(fù)此過(guò)程,直到修改所有提交。 通過(guò)git status可查看進(jìn)展。
3.修改示例
當(dāng)前git log提交信息如下
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
假設(shè)此時(shí)需要修改 6b98331 modify Readme.md 2這一commit的作者日期和提交者日期
修改步驟為:
執(zhí)行交互式變基命令 git rebase -i 98ddd80
在彈出的vi編輯信息中,將 6b98331提交前的pick修改為e,隨后執(zhí)行 :wq 保存
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= use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # b, break = stop here (continue rebase later with 'git rebase --continue') # d, drop = remove commit # l, label
執(zhí)行 GIT_COMMITTER_DATE="2021-10-22T15:10:07" git commit --amend --date="2021-10-22T15:10:07" 將作者日期和提交者日期均修改為2021-10-22T15:10:07。然后可選擇在彈出的vi信息編輯窗中可修改提交日志,然后執(zhí)行 :wq 保存
然后執(zhí)行 git rebase --continue轉(zhuǎn)到下一個(gè)提交,直到保存所有修改。完成后再使用git log查看提交信息即可看到提交信息已被修改
上述示例的完整日志如下:
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
到此,關(guān)于“git如何修改commit時(shí)間”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!