我有几个分支,我希望第二个分支的更改出现在第一个分支中。
最好用图表来描述:
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
范围吗?还是有更好的方法
如果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
swithch 与rebase
一起使用,这样您就可以在实际执行此操作之前检查是否正在复制正确的提交。
另一方面,如果出现问题,您可以简单地将moving/branch-2
恢复到branch-2
并重新开始。