在Git中合并两个合并

感性负载

我有一个Git分支,它是一个topic显示项目分支master我将其与主服务器合并,并手动解决了冲突。之后,修复了一个严重的错误,master然后我又合并了,这次没有冲突。在两次合并之间,我自己没有做任何事情,也没有将分支推给其他任何人。我想将两个合并。

我现在所拥有的是:

master ----A---B-----C---------->
                \     \
topic   ---W-----X-----Y-------->

哪里:

  • X是解决冲突的合并
  • C是master上的关键错误修复
  • Y是合并此修复程序的合并

我想把它变成:

master  ----A---B---C----------->
                     \
topic   ----W---------X'-------->

现在X'是一个合并,它在单个合并提交中合并了冲突解决方案和错误修正。

我知道我可以通过检出W并合并master,并在不可避免的冲突期间从X复制已解析文件的内容来手动完成此操作有没有一种更快的方法,却没有那么多的麻烦(在冲突大而丑陋的情况下)?

沃尔伯格

如果至少从那时起您确实没有提出任何要求W,那么这可能是实现它的最简单方法(在实际的冲突解决方案之外,这可能很痛苦)。

git checkout topic
git reset --hard W
git merge master

但是,如果您自以来一直在推W(特别是在存储库之外的任何一个XY存在),我不确定是否有一个干净的解决方案-不管您做什么,都会对具有以下功能的任何其他存储库造成问题无论是XY在其中。

当然,除非已rerere启用,否则您必须重新执行冲突解决方案

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章