1. 程式人生 > >[轉]git commit --amend用法

[轉]git commit --amend用法

到你 xxx rsquo 允許 就是 所有 參考 refs show

適用場景:

比方說,你的代碼已經提交到git庫,leader審核的時候發現有個Java文件代碼有點問題,於是讓你修改,通常有2種方法:

方法1:leader 將你提交的所有代碼 abandon掉,然後你回去 通過git reset …將代碼回退到你代碼提交之前的版本,然後你修改出問題的Java文件,然後 git add xx.java xxx.java -s -m “Porject : 1.修改bug…”

最後通過 git push origin HEAD:refs/for/branches

方法2

leader不abandon代碼,你回去之後,修改出問題的Java文件,修改好之後,git add 該出問題.java

然後 git commit –amend –no-edit,

最後 git push origin HEAD:refs/for/branches。

當我們想要對上一次的提交進行修改時,我們可以使用git commit –amend命令。git commit –amend既可以對上次提交的內容進行修改,也可以修改提交說明。

舉個例子:

Step1:我們先在工作區中創建兩個文件a.txt和b.txt。並且add到暫存區,然後執行提交操作:

Step2:此時我們查看一下我們的提交日誌:

可以看到我們的提交日誌中顯示最新提交有兩個文件被改變。

Step3:此時我們發覺我們忘了創建文件c.txt,而我們認為c.txt應該和a.txt,b.txt一同提交,而且a.txt文件中應該有內容‘a’。於是我們在工作區中創建c.txt,並add到暫存區。並且修改a.txt(故意寫錯語法且沒有將a.txt的修改add到暫存區):

Step4:我們查看一下此時的提交日誌,可以看到上次的提交0c35a不見了,並且新的提交11225好就是上次提交的修補提交,它就像是在上次提交被無視了,修改後重新進行提交了一樣:

Step5:此時我們發現a.txt文件修改沒有成功,於是我們還得進行一次對a.txt的修改,將a.txt add到stage,然後再執行一次與上一次類似的提交修補:

OK了,git commit –amend的用法大致就是這樣。

總結:git commit --amend 相當於上次提交錯誤的信息被覆蓋了,gitk圖形化界面上看不到上次提交的信息,git log上也看不到之前的信息,而add 後再commit 相當於重新加了一個信息。相當於打了個補丁?

參考

https://www.jianshu.com/p/a8a2ac58f37d

[轉]git commit --amend用法