情況一:最后一次提交且未push
執(zhí)行以下命令:
git commit --amend
git會(huì)打開$EDITOR編輯器,它會(huì)加載這次提交的日志,這樣我們就可以在上面編輯,編輯后保存即完成此次的修改。
情況二:最后一次提交且已push到服務(wù)器
執(zhí)行以下命令:
git commit --amend
git push origin master --force
和情況一的做法一樣。使用push推送到遠(yuǎn)程服務(wù)器是需要加上--force,讓服務(wù)器更新歷史記錄。
需要注意的是:把修改后的日志強(qiáng)制push到Git服務(wù)器,如果別人本地的副本有修改,很有可能會(huì)導(dǎo)致他們同步不了,所以最好和他們核對(duì)下。
情況三:舊的提交且未推送
假設(shè)commit是倒數(shù)第3次提交,這個(gè)可以使用git log查看,
$ git log
commit b1b451d218cc23b6c769f373164f2b89cf54d0aa
Author: clcaza <clcaza@sina.cn>
Date: Sat Mar 10 19:09:08 2018 +0800
添加內(nèi)容d
commit 04f0d1809d5d31cc6e930efcba47a5f3f7e93319
Author: clcaza <clcaza@sina.cn>
Date: Sat Mar 10 19:08:24 2018 +0800
添加內(nèi)容c
commit 94fc8feb916442d56b558d5c370f18f057298921
Author: clcaza <clcaza@sina.cn>
Date: Sat Mar 10 19:07:08 2018 +0800
添加內(nèi)容a
commit fd517efa9faf6a5ec71d0eac38fbcfa0cd689f40
Author: clcaza <clcaza@sina.cn>
Date: Sat Mar 10 19:06:21 2018 +0800
init
執(zhí)行rebase
git rebase -i HEAD~3
它會(huì)打開一個(gè)編輯器,它會(huì)把最后前3次的提交顯示出來(lái),類似于:
pick 94fc8fe 添加內(nèi)容a
pick 04f0d18 添加內(nèi)容c
pick b1b451d 添加內(nèi)容d
你會(huì)看到,它是按提交的順序顯示的,與git log顯示的順序相反。定位到你要編輯日志的那一行,把pick修改為edit,然后保存。
接著就是修改日志內(nèi)容了
git commit --amend
完成編輯日志后,記得執(zhí)行:
git rebase --continue
Rebase目的是打開提交的歷史記錄,讓您選擇要修改的內(nèi)容。 Git會(huì)讓你在一個(gè)新的分支修改內(nèi)容。 git rebase --continue則是讓你重新回到之前的分支。
情況四:舊的提交且已push到服務(wù)器
前面編輯日志的操作是和情況三是一樣的:
git rebase -i HEAD~X
git commit --amend
git rebase --continue
X表示倒數(shù)第幾次提交。
完成編輯日志后,執(zhí)行push:
git push origin master --force
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。