Cherry-pick 合并提交失败,提交为空
Cherry-pick merge commit failing with empty commit
我有几个分支,我希望第二个分支的更改出现在第一个分支中。
最好用图表来描述它:
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
switchch 与 rebase
一起使用,这样您就可以检查是否正在复制正确的提交在真正这样做之前。
另一方面,如果出现问题,您只需将 moving/branch-2
恢复为 branch-2
并重新开始。
我有几个分支,我希望第二个分支的更改出现在第一个分支中。
最好用图表来描述它:
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
switchch 与 rebase
一起使用,这样您就可以检查是否正在复制正确的提交在真正这样做之前。
另一方面,如果出现问题,您只需将 moving/branch-2
恢复为 branch-2
并重新开始。