有没有办法强制 git 合并始终使用外部合并工具



有没有办法配置git合并,使冲突解决始终通过外部合并工具?

我正在编写 semanticmerge 的配置,有这样的情况被 git 错误地处理,但可以通过语义合并正确解决:* 两个开发人员在同一文件的两个不同位置添加了相同的方法。

问题是 git merge 说冲突是自动的,所以 git mergetool 不能被调用。

谢谢。

请参阅 gitattributes 的文档。在内心深处有一个称为"合并"的属性,设置匹配文件的合并方法。

因此,例如,您可以在项目的根目录中有一个.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

最新更新