如何在Git中为特定的文件扩展名设置difftool / mergetool?

时间:2012-09-10 17:48:42

标签: git version-control git-merge git-diff git-config

是否可以设置自定义工具以在Git中合并具有特定扩展名的文件?

感谢您的任何指示!

更新

我无法提出任何更好的解决方案,而不是定义自定义difftool并像@jarodeells建议手工调用它一样:

[diff]
    tool = mydiff
[difftool "mydiff"]
    cmd="script.sh \"$LOCAL\" \"$REMOTE\""

然后明确地调用它:

$ git difftool -t mydiff someFileWith.ext

2 个答案:

答案 0 :(得分:1)

如果尚未支持,请安装一个关闭扩展名的shell脚本,并调用正确的合并工具。

答案 1 :(得分:0)

更新:请参见下面的@Ackdari评论。外部工具不必基于命令行。我不确定使用外部工具时git如何使用binary = True,但我怀疑可能需要使用它才能使所有流程正常工作。

如果您的外部差异工具*仅是命令行(没有GUI),您可以为此使用内置的gitattributes

.gitconfig中添加:

[diff "my_diff"]
    command = Tools/csv_diff
    binary = true # Not sure this is required.

并在.gitattributes(全局或每个存储库,请参阅here)中添加:

*.csv diff=my_diff

[*]外部diff工具的命令将由git使用手册here GIT_EXTERNAL_DIFF 中详细介绍的7个参数调用。