2008-10-24 74 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