Cherry-pick合并提交因空提交而失败

时间:2018-06-29 07:10:35

标签: git merge git-merge cherry-pick git-cherry-pick

我有几个分支,并且我希望第二个分支中的更改出现在第一个分支中。

最好用图表来描述:

          X - Y - Z    (branch-2)
         /         \
A - B - C - D - E - F  (master)
 \     
  G - H - I            (branch-1)

我想将XYZ合并到branch-1中而不带BC

我尝试选择合并提交F,尽管我指定了正确的父(我认为),但选择失败的原因是:The previous cherry-pick is now empty, possibly due to conflict resolution.

我应该选择X^..Z范围吗?还是有更好的方法呢?

1 个答案:

答案 0 :(得分:4)

如果branch-2很小,

一个樱桃挑一个可能是一个解决方案。

要移动较大的分支,我可以这样做:

git checkout branch-2
git branch   moving/branch-2 # new branch to work with
git rebase --onto  branch-1 [sha_of_c] moving/branch-2 # move commits of branch ontop of the other 
git checkout branch-1 
git reset --hard  moving/branch-2 # set branch lable to new HEAD
git branch -d  moving/branch-2 # clean up

@quetzalcoatl 在评论中所建议,您可以将-i标记与rebase一起使用,以便在实际执行操作之前检查是否已复制正确的提交。

另一方面,如果出现问题,您可以将moving/branch-2还原为branch-2,然后重新开始。