Gitrerere提供在rebase期间重用以前的冲突解决方案,甚至可以通过设置rerere.autoupdate=True暂存已解决的文件(详见anotherquestion)。然而,即使所有冲突都已解决并且所有文件已暂存,我仍然必须运行gitrebase--continue以继续rebase操作。如果rerere已解决所有冲突并暂存所有更改,我如何自动继续? 最佳答案 从Git2.14.x/2.15开始(2017年第三季度),Rebase应该更多地使用rerere-autoupdate。参见commitf826fb7,commi
故事:在项目进行到一半时,我的同事从master创建了一个新分支,并开始进行繁重的重构工作。我从master创建了我的分支,并开始在页面上做新的事情。我们定期提交,但只有我可以将代码rebase到master(因为同事的更改太重,还不能从master部署)。不幸的是,我们的一些工作依赖于相同的文件。因此,经过几天的工作,当她最终想将她的更改rebase到master时,她遇到了很多git冲突。my_branch#---#----#-#-------#----#--#-----#---#----#----#/\\\\\\master*-------*--------------*---*
故事:在项目进行到一半时,我的同事从master创建了一个新分支,并开始进行繁重的重构工作。我从master创建了我的分支,并开始在页面上做新的事情。我们定期提交,但只有我可以将代码rebase到master(因为同事的更改太重,还不能从master部署)。不幸的是,我们的一些工作依赖于相同的文件。因此,经过几天的工作,当她最终想将她的更改rebase到master时,她遇到了很多git冲突。my_branch#---#----#-#-------#----#--#-----#---#----#----#/\\\\\\master*-------*--------------*---*
像大多数刚接触Git的人一样,我在尝试破译适用于gitmerge和gitrebase的用例时也有过困惑。我想我终于决定,就生成的工作副本状态而言,它们给你的是同样的东西。而且,它们都会导致相同的冲突。如果这不正确,请提供示例以启发我。在我看来,使用rebase而不是merge(如果您的更改没有被推送或pull)的主要好处是保持历史线性。我真正不明白的是开发git-rerere背后的原因。根据联机帮助页,git-rerere应该可以在您尝试解决之前已解决的冲突时为您提供帮助。我将要引用的示例位于http://www.kernel.org/pub/software/scm/git/docs
我见过有人建议所有开发人员在他们的机器上设置一个符号链接(symboliclink),从C:\project\.git\rr-cache到共享文件夹\\server\rr-缓存。但是,如果可能的话,通过将文件夹包含在git存储库本身中来共享该文件夹似乎更方便。我见过人们提到这个解决方案,但实际上并没有提到如何去做。有什么想法吗? 最佳答案 它可以通过专用分支共享。如果该分支上存在冲突并解决它,您想要停止,因为这意味着有人试图以两种不同的方式解决相同的冲突。不用说,这将是规则的异常(exception)。对于这个问题的其他人,谷歌搜索
好吧,所以我真的很喜欢gitrerere命令,尽管除了让它自动神奇地记录我的冲突并为我解决它们之外,我并没有真正使用过它。但是,在相当大的rebase期间,我确实弄乱了我的一个冲突解决方案(用最新版本rebase一个非常陈旧的功能分支)。feature->a-b-c-drelease->e-f-g-hrebase/feature->e-f-g-h.`a'-b'-c'-d'所以,例如说b'有一个不正确的merge(感谢我!),我想重新记录它。我该怎么做?我见过gitcheckout--conflict选项,在RerereYourBoat中提到过,但我不太清楚它是如何工作的,以及它是否适用
我已经阅读了有关git的rerere功能的各种信息,并且我正在考虑启用它。Thegitrererefunctionalityisabitofahiddenfeature.Thenamestandsfor“reuserecordedresolution”and,asthenameimplies,itallowsyoutoaskGittorememberhowyou’veresolvedahunkconflictsothatthenexttimeitseesthesameconflict,Gitcanresolveitforyouautomatically.https://git-scm.