我想重新创建合并冲突,以便我可以在第二轮正确解决它。
示例:
我基本上想重新做冲突解决部分。
我没有选择重新设置我的HEAD,因为分支已被推送到遥控器;在我意识到冲突解决是错误的之前,还有可能让其他人投入其中。
我也想避免直接修复分支'A'。
我想避免樱桃采摘。我知道我可以做一个标准的恢复和樱桃选择我的提交等,我不想这样做。
那么有没有优雅的方法呢?
我已经尝试恢复合并提交然后再次恢复恢复和合并分支'B',但不幸的是它没有要求我第二次解决任何冲突,我刚刚得到标准的“已经是最新的”消息。
简单地说,我想重新创建冲突,以便我可以在第二轮正确解决。
非常感谢任何帮助。
感谢。
答案 0 :(得分:10)
这里有两个步骤。首先是重新创建合并和冲突。第二个是将它应用于分支的新提示。
你有类似的东西。
1 - 2 - 5 - 6 - 7 - 9 - 10 [A]
\ /
3 - 4 - 8
7是合并提交,你想重做它并在A之上应用修复。重新引用可能会变得混乱,因为太多的工作已经堆积在最上面。
首先,让我们重新创建合并冲突。要做到这一点,我们将重新做一遍。结帐6,这是合并时A的位置,并将其与8合并。
git checkout 6
git merge 8
您必须使用git log --graph
来确定实际的提交ID。现在我们有合并冲突。像 一样解决它,但不提交 。相反,把它藏起来。 git stash save
。这将在名为"the stash"的角落中保存差异。这只是保存补丁的一种更正式的方式。
既然我们已经解决了冲突问题,请检查A并从存储中应用修复。
git checkout A
git stash pop
由于A已发生变化,因此您可能会遇到新的冲突。没关系。正常解决并提交。