我有几个分支,并且我希望第二个分支中的更改出现在第一个分支中。
最好用图表来描述:
X - Y - Z (branch-2)
/ \
A - B - C - D - E - F (master)
\
G - H - I (branch-1)
我想将X
,Y
,Z
合并到branch-1
中而不带B
和C
。
我尝试选择合并提交F
,尽管我指定了正确的父(我认为),但选择失败的原因是:The previous cherry-pick is now empty, possibly due to conflict resolution.
我应该选择X^..Z
范围吗?还是有更好的方法呢?
答案 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
,然后重新开始。