lur*_*her 42 git version-control git-rebase
当我这样做时git rebase branch1,我branch1-local会发生冲突.我解决了冲突,做了git add <conflicted-add>然后git rebase --continue就像git要求我做的那样.之后,将应用新的提交.出现了新的冲突.但是再次发生同样的冲突!同一个文件!我再这样做,git add的git rebase --continue,然后这一切再次重复,直到我重复这一过程,每次提交被重建基础上.
为什么rebase让我一遍又一遍地重做同样的冲突解决方案?
pat*_*yts 12
你想要的是git rerere哪些记录冲突解决方案.我见过的最好的介绍现在是Git Book,Tools章节的一部分.实际上,当您执行rebase时,您将最终停止,但您只需检查合并冲突是否仍然已解决,然后git add继续.
你不应该一次又一次地遇到同样的冲突。Rerere 在这里不会帮助你。它只是意味着您尝试重播提交的代码库非常不同,每个提交都需要您的帮助来调整它。这是支持合并而不是变基的原因之一。在我看来,只有在必要时才应该使用变基,而不是常规工作流程的一部分。Rerere 将在合并/重置类型工作流程中提供更多帮助。这是我避免变基的工作流程: http://dymitruk.com/blog/2012/02/05/branch-per-feature/
缓解一些痛苦的一种方法是使用像 Beyond Compare 这样的智能合并程序。它具有语法感知能力,并且可以解决很多 Git 会(理所当然地)拒绝为你做的冲突。很多时候,这些工具在被调用时甚至不会打开其 UI、解决问题并允许您的git mergetool命令继续处理下一个冲突。请记住将“信任合并工具退出代码”设置为 true。