2008-10-24 97 views
9

假設分支B是分支A的主題分支,並且您希望在分支C中進行這些更改。當您選擇分支A和分支B的合併提交到分支時,這意味着什麼C?櫻桃選擇合併

例如,如果您使用-m標誌指定分支A的舊HEAD以將櫻桃挑選到分支C,那麼這是否意味着「將櫻桃挑選的提交樹和舊頭A分支並將其應用於分支C?「

使用此方法是否有任何問題? (例如,將C路看起來它合併到分支A和B將不僅僅是簡單地從分支B中提交應用改變?)

回答

10

的方式,我通常這樣做是利用git rebase

git rebase --onto C A B 

這需要A和B之間的差異,並將這些差異應用於分支C.作爲獎勵,該底線將跳過A和B之間的任何提交,以執行與分支C中已存在的相同文本更改。

更新:如果您在評論中提到過,請記住Git不會覆蓋過去的歷史記錄。因此,即使在完成上述的rebase之後,您可以在B用於rebase之前的提交中重新創建新的分支頭。不幸的是,我不能想到在這個早晨的這個時候做一個簡單的方法。對不起,我沒有更多的幫助,也許別人會想出一個簡單的方法!

+0

對不起,我忽略了我希望分支B中的更改應用於A和C. rebase會導致B中的更改很容易與C合併,但現在A處於C爲我能做些什麼來在A中進行這些改變? – Readonly 2008-10-24 09:10:31