有没有一种配置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

10-07 19:17