2013-02-13 81 views
4

如果我有這樣的提交歷史:我如何能夠壓制A和K的承諾變成一個承諾ž

A-B-C-------G-H-J-K (master) 
    \ /
     D-E-F 

我如何能夠壓制A和K的承諾變成一個承諾Z:

A-Z-K (master) 

+0

有用的鏈接 - [將多個提交合併爲一個使用git rebase](http://feeding.cloud.geek.nz/posts/posting/multiple-commits-into-one/) – timotei 2013-02-13 13:47:00

回答

2

首先,執行:

git rebase -i A 

這將顯示提交列表在文本編輯器,從B和與K.
結束你將不得不改變提交的C前面的文本pick ,D,E,F,H和J至ssquash。做不是在B或K前面更改pick。請注意,提交G應該丟失,因爲它是合併提交。

最後,保存並退出編輯器。這將開始實際重新貸款。

其結果將是這樣的:

A-Z-K'     (master) 
\ 
    B-C-------G-H-J-K  (no branch) 
    \ /
     D-E-F 

是無分行將最終被垃圾收集被移除的部分。

+0

1.我必須做什麼提交B(現場挑選或更改爲南瓜)? 2.亞洲債券是否會取代被壓垮的債券? – timotei 2013-02-13 11:46:09

+0

謝謝!我懂了! )) – timotei 2013-02-13 12:03:47