我正处于一个大的合并请求中,已经解决了一堆冲突,当我意识到我想再次与-Xignore-all-space
运行合并命令时。如果我运行git merge --abort
,我还必须解决我已经解决的所有冲突。是否有一种方法来记录这些(已经上演),中止合并请求,尝试使用新的标志,并重新应用旧的变化,它是可能的?
我假设你没有打开verere的自动模式。
git worktree add scratch @
git -C scratch merge otherbranch
git -C scratch rerere
git worktree remove -f scratch
这些将重新运行当前的合并以获得显示未解决冲突的索引,并运行git rerere
以记住它们。如果你的结帐是巨大的,有办法避免这种情况,寻找最小结帐合并。
那么你可以
git rerere
来记住你安排的冲突解决方案。每次git rerere
运行时,它都会在内存和索引快照中搜索,在每个快照中查找冲突和解决方案。如果它记得在应用之前看到的未解决的冲突的解决方案,它就会记住任何新的内容。
然后你可以中止你的合并,用新的选项重新运行它,第三次使用git rerere
,让它重用记录的分辨率。
如果你说git config rerere.enabled true
git会自动执行git rerere
,在任何合并因冲突而停止之后,在提交任何合并因冲突而停止之前。如果你选择git config rerere.autoupdate true
,它也会自动为你准备那些重新应用的分辨率。