我有一个Git分支,它是一个topic
显示项目的分支master
。我将其与主服务器合并,并手动解决了冲突。之后,修复了一个严重的错误,master
然后我又合并了,这次没有冲突。在两次合并之间,我自己没有做任何事情,也没有将分支推给其他任何人。我想将两个合并。
我现在所拥有的是:
master ----A---B-----C---------->
\ \
topic ---W-----X-----Y-------->
哪里:
我想把它变成:
master ----A---B---C----------->
\
topic ----W---------X'-------->
现在X'是一个合并,它在单个合并提交中合并了冲突解决方案和错误修正。
我知道我可以通过检出W并合并master
,并在不可避免的冲突期间从X复制已解析文件的内容来手动完成此操作。有没有一种更快的方法,却没有那么多的麻烦(在冲突大而丑陋的情况下)?
如果至少从那时起您确实没有提出任何要求W
,那么这可能是实现它的最简单方法(在实际的冲突解决方案之外,这可能很痛苦)。
git checkout topic
git reset --hard W
git merge master
但是,如果您自以来一直在推W
(特别是在存储库之外的任何一个X
或Y
存在),我不确定是否有一个干净的解决方案-不管您做什么,都会对具有以下功能的任何其他存储库造成问题无论是X
或Y
在其中。
当然,除非已rerere
启用,否则您必须重新执行冲突解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句