git commit的--amend選項


    git commit --amend常常用來修改某個branch上最頂端的commit,大多數情況下,這個命令給人的感覺是用新的commit替換了原來的commit。git commit --amend與下面的語句等價:

git reset --soft HEAD^  //將branch的頭指針向前移動一個commit,--soft選項使得index和workspace tree的內容保持移動之前不變

...do something...

git commit -c ORIG_HEAD  //-c選項使得新提交的log message重用ORIG_HEAD指向的commit使用的log message,但允許用戶編輯

 

舉個例子,假設master branch上的提交歷史如下圖:

運行git commit --amend時,過程如下:

圖中有陰影的commit就是master指針移動之前指向的commit,當git commit --amend運行結束后,這時因為沒有任何其他branch指向有陰影的commit,該commit會被廢棄。但是如果是下面的情況:

運行git commit --amend的過程如下:

上圖中加陰影的commit仍然是master指針移動之前指向的commit,但是由於該commit還被alt branch引用,因此這個commit不會被廢棄。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM