Emi*_*l G 20 git merge merge-conflict-resolution
让我们假设我们有一个开发分支'A'和两个子分支'B1'和'B2'(都取自A).让我们说你在B1和B2的整个项目中运行格式代码命令(在我们的例子中是ReSharper的清理代码).
现在,当我们尝试将B2合并到B1时,Git将报告项目中所有文件的冲突(在我们的例子中相当大).当仔细观察每次冲突时,看起来Git认为即使在B1和B2中都进行了完全相同的改变,也会发生冲突(?)
有没有办法,自定义驱动程序/ git属性等,如果B1和B2中的文件完全相同,将使Git合并操作不报告冲突?
也许我错了,也许它是一个空白/行结束问题(例如B1和B2中的不同行结尾),在这种情况下我可以在堆栈溢出中找到解决方案.
昨天,在从(和到)一个侧分支进行了大量挑选之后,我在与主分支合并后遇到了类似的问题。相同的变化有很多冲突。我用合并策略解决了这个问题:
git checkout main-branch
merge --no-commit -s recursive -X ours side-branch
Run Code Online (Sandbox Code Playgroud)
您可以将“我们的”更改为“他们的”。请小心,因为所有冲突都会自动解决,选择“我们的”或“他们的”一方。就我而言,由于这个原因,我几乎没有合并错误,我手动修复了。在这里查看其他有趣的合并策略选项:https ://www.kernel.org/pub/software/scm/git/docs/git-merge.html
您还可以尝试使用变基(在我的例子中,它效果不佳,因为分支差异太大,并且在每个新的变基交互中都有新的冲突)。请参阅: http: //davitenio.wordpress.com/2008/09/27/git-merge-after-git-cherry-pick-avoiding-duplicate-commits/