文章首次整理發(fā)布自個(gè)人博客:一之筆:Git-修改提交message
情景一
我在開發(fā)的過(guò)程中,git 提交的 message 不小心把項(xiàng)目名稱寫錯(cuò)了,需要修改,這時(shí)候,本地已經(jīng)add,并且已經(jīng)push到服務(wù)端了,怎么辦?
情景二
上一篇我寫了規(guī)范雜談,里面有g(shù)it代碼提交的簡(jiǎn)單規(guī)范,這時(shí)候,我想修改之前提交的message,以便按照提交規(guī)范;
修改最近的一筆提交
修改最近的提交是最常見的修改歷史說(shuō)明的行為,我隔一段時(shí)間就會(huì)來(lái)一次;
這個(gè)很簡(jiǎn)單,就一個(gè)命令:
~ git commit --amend
git commit 后增加一個(gè)參數(shù),amend,輸入命令后,終端會(huì)進(jìn)入 VIM 文本編輯器,按 i 字母,會(huì)進(jìn)入編輯模式,修改你需要改的message,然后,保存,退出編輯,重新push即可
修改多個(gè)提交說(shuō)明
修改多個(gè)提交說(shuō)明,這個(gè)相對(duì)比較復(fù)雜,我也是按照某個(gè)老師寫的,嘗試了2次才修改成功;
主要是通過(guò):以下這個(gè)命令,其中 HEAD~2 就是最近2筆提交;
~ git rebase -i HEAD~2
運(yùn)行命令后,終端進(jìn)入編輯模式,大概就是下面這個(gè)樣子:
需要注意的是,這個(gè)編輯器給我們呈現(xiàn)的提交順序跟[ git reflog ]的順序是相反的; 這個(gè)跟我們修改的message沒(méi)啥關(guān)系,但是也需要注意一下;
下來(lái)就是重點(diǎn)了,敲黑板
我們只要將想修改的每一次提交前面的 pick 改為 edit 推捐。例如弟灼,只想修改第一次提交說(shuō)明的話工扎,就像下面這樣修改,看下圖:
退出編輯,保存退出,這時(shí)候,會(huì)提示你,接下來(lái)怎么做,大概是這個(gè)樣子
其實(shí)分別就是兩個(gè)命令
git commit --amend
git rebase --continue
其中,第一個(gè)命令就是修改上面你把 pick 修改 為 edit 的那一筆提交的message,然后保存退出,執(zhí)行第二個(gè)命令
第二個(gè)命令,就是自動(dòng)應(yīng)用其他的提交,執(zhí)行后,會(huì)有一段提示:
Successfully rebased and updated refs/heads/ios_fire_control2.0.
然后,git push 就可以了,大功告成!
以上,如有問(wèn)題,歡迎留言,謝謝!