假设分支B是分支A的主题分支,并且您希望分支C中的那些更改.当您选择分支A和分支B的合并提交到分支C时,它是什么意思?
例如,如果你使用-m标志来指定分支A的旧HEAD来挑选合并到分支C,那么这只是意味着"在樱桃挑选的提交树和分支A的旧HEAD之间取差异并且把它应用到分支C?"
使用这种方法有什么问题吗?(例如,分支C看起来是否会合并到分支A和B?是否会应用更多更改而不仅仅是来自分支B的提交?)
我通常这样做的方式是使用git rebase
:
git rebase --onto C A B
这将获取A和B之间的差异,并将这些差异应用于分支C.作为奖励,rebase将跳过执行与分支C中已存在相同的文本更改的A和B之间的任何提交.
更新:在评论中提到的情况下,请记住Git永远不会覆盖过去的历史记录.因此,即使在执行上面的rebase之后,您也可以在提交时重新创建一个新的分支头,其中B曾经在rebase之前.不幸的是,在早上的这个时候,我想不出一个简单的方法.对不起,我无法提供更多帮助,也许其他人会想出一个简单的方法!