使用 git commit --amend 修改歷史 commit 信息

在一些受管控的項目上,提交代碼到 git 服務器後,還需要經過審覈確認才正式合入版本,一般常用 gerrit 來進行審覈確認操作。

如果提交的代碼審覈不通過,需要再次修改提交。由於是修改同一個問題,我們可能不希望生成多個 commit 信息,會顯得改動分散,看起來改動不完善,所以想要在本地已有的 commit 信息上再次提交改動,而不是在已有的 commit 上再新增一個 commit。

使用 git commit --amend 命令可以達到在現有最新 commit 上再次提交改動的效果。

在本地提交改動後,我們再次修改代碼,執行 git add 命令添加改動,如果執行 git commit -m 命令,默認會創建新的空 commit 信息,填寫相應的修改說明,提交之後,會新增一個 commit 信息;而執行 git commit --amend 命令會彈出當前最新 commit 的信息,我們可以修改這個信息,也可以不修改,提交之後,用 git log 命令查看,會看到沒有增加新的 commit,原先 commit 的 hash 值也沒有變,這一次的修改是跟之前的修改一起提交的。

查看 man git-commit 對 --amend 選項的關鍵說明如下:

--amend
Replace the tip of the current branch by creating a new commit.

即,--amend 選項創建一個新的 commit 來替換當前最新的 commit,如同當前最新的 commit 信息被修改了一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章