有没有一种配置git merge的方法,使得冲突解决总是通过外部合并工具进行?
我正在为semanticmerge编写配置,有些情况是git错误处理的,但semanticmerge可以正确解决:
*两个开发人员在同一文件的两个不同位置添加了相同的方法。
问题是git merge说冲突是自动的,因此无法调用git mergetool。
谢谢。
最佳答案
请参阅gitattributes的文档。在内心深处有一个叫做“merge”的属性
设置匹配文件的合并方法。
因此,例如,您可以在项目的根目录中有一个.gitattributes
文件,其中包含,
*.fancy merge filfre %O %A %B %L %P
它将使用
filfre
程序进行合并。它调用程序%o祖先的版本临时文件名
%当前版本文件名
%b其他分支的版本临时文件名
%l冲突标记大小
%p存储合并结果的路径名
合并驱动程序应使用合并中的合并结果覆盖%a。
该文档中有一个章节,标题是“定义自定义合并驱动程序”,建议全局设置合并工具
[merge "filfre"]
name = feel-free merge driver
driver = filfre %O %A %B %L %P
recursive = binary
放置在git配置中,例如,
.git/config
或$HOME/.gitconfig
。