根据文件类型选择git mergetool

时间:2014-04-26 16:27:02

标签: git merge git-config gitattributes

运行git mergetool时,我想让git选择基于文件扩展名使用的合并工具。我怎样才能做到这一点?

此处也提出了类似的问题:Git: configure patterns for difftool and mergetool 答案是编写自定义合并驱动程序。但是,似乎这将在git merge上执行,而我希望在git mergetool上选择合并工具。

似乎必须有一些方法来指定.gitattributes,但我似乎无法弄清楚如何。有什么建议吗?

1 个答案:

答案 0 :(得分:6)

一个解决方案(因为我的old answer不适合mergetool)是设置为mergetool 包装脚本

git config --global merge.tool customMergeTool
git config --global mergetool.customMergeTool.cmd 'customMergeTool.sh \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'

包装脚本customMergeTool.sh会:

  • 检查$BASE是什么(特别是其文件扩展名)
  • 根据该扩展程序调用相应的合并工具
  • 返回mergetool
  • 的退出状态

以下是OP elsevers提出的脚本:merge-wrapper