我有一个大的合并进行超过300个冲突的文件。我想用mergetool来解决这些问题,但是我无法一次性完成它。我如何提交合并,然后再回来并继续相同的合并?通常情况下,如果索引中存在冲突,git似乎不允许您提交。如何在解决冲突的过程中提交长Git合并
回答
我假设“不能在一次就坐”,你实际上是指“在完成之前想做其他事情” - 因为你可以将部分解决的合并留在工作树中。
首先,在您遇到任何问题之前,请注意您可以简单地创建另一个存储库克隆 - 部分解析的合并可以保留在一个中,并且您可以在另一个中执行其他工作。所有这一切说,如果你真的想保存你所做的部分解决合并的工作,我最好的建议是使用git rerere
(REuse REcorded REsolutions)。
要开始使用,请确保rerere.enabled
设置为true - 这将覆盖大部分正常使用情况。这会导致git rerere
在合并冲突发生后立即自动运行 - 此时您将看到形式为Recorded preimage for '<path>'
的消息。它也会在您提交合并时自动运行;那么你会看到形式为Recorded resolution for '<path>'.
的消息。这些解决方案可以在稍后出现相同的冲突人群时重新使用。
现在,在您的使用案例中,将会发生第一个自动触发 - 将记录preimages。但是你还没有准备好提交你的合并,所以在解决了一些有冲突的文件并将它们标记为已解决(将它们添加到索引)之后,你可以直接运行git rerere
(无参数)直接。它会记录您标记为解决的所有内容的解决方案,但忽略任何尚未解决的问题。然后,您可以简单地销毁尝试的合并(git reset --merge
),并在下次尝试合并时,录制的分辨率将被重复使用!
哇,这太不可思议了,我的意思是我不希望在发生灾难的情况下在开发机器上留下一堆未提交的更改,我宁愿定期向上游方向推进,以便合作伙伴可以看到我的工作看完手册页后,看起来`rerere`的变化是在本地记录的,有没有什么办法将它们存储在提交中?还有,你有什么想法,是否可以在已经合并的中间? – 2011-02-14 21:46:45
- 1. Git:提交未解决的冲突
- 2. git blame在解决合并冲突时
- 3. Git:合并冲突并提交消息
- 4. 如何解决恢复提交冲突
- 5. 在Git rebase期间解决合并冲突后需要提交吗?
- 6. 如何解决git存储冲突而无需提交?
- 7. 合并冲突解决
- 8. 合并冲突解决后提交消息的问题
- 9. 如何解决与composer.lock使用git流的合并冲突?
- 10. Git合并并解决当前分支的任何冲突
- 11. Git冲突提交
- 12. 在GIT中使用p4merge解决选定的合并冲突
- 13. 我该如何解决合并冲突git
- 14. git:解决合并冲突而不执行合并
- 15. 如何在git pull后解决冲突?
- 16. 在git中解决'both added'合并冲突?
- 17. 解决git的冲突
- 18. 合并冲突Git
- 19. Git合并冲突
- 20. Git合并(冲突)
- 21. 如何解决与git-svn的冲突?
- 22. 如何解决hg commit abort:解决合并的冲突。
- 23. 解决Git Svn冲突
- 24. 如何在git中合并和更新文件时解决冲突?
- 25. git:合并后的樱桃选择提交的冲突
- 26. 如何使用Git合并工具来解决react-native-git-upgrade冲突?
- 27. 删除旧的提交:`git rebase`导致合并冲突
- 28. 自动解决主键合并冲突
- 29. 选择性合并/冲突解决
- 30. Subclipse>意外合并冲突解决
你也不能藏匿。 :( – 2011-02-14 20:48:38