3

有没有办法以冲突解决总是通过外部合并工具的方式配置 git merge ?

我正在为semanticmerge 编写配置,有些情况下git 处理不正确,但可以通过semanticmerge 正确解决: * 两个开发人员在同一个文件的两个不同位置添加了相同的方法。

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

谢谢。

4

1 回答 1

1

请参阅gitattributes的文档。深层是一个名为“merge”的属性,它设置匹配文件的合并方法。

因此,例如,您可以.gitattributes在项目的根目录中有一个文件,其中包含:

*.fancy merge filfre %O %A %B %L %P

这将使用filfre程序进行合并。它调用程序

  • %O 祖先的版本临时文件名
  • %A 当前版本文件名
  • %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.

于 2018-03-09T14:33:50.880 回答