10

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

感谢您的任何指点!

更新

除了定义自定义 difftool 并按照@jarodeells 的建议手动调用它之外,我想不出任何更好的解决方案:

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

然后显式调用它:

$ git difftool -t mydiff someFileWith.ext
4

2 回答 2

5

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

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

补充.gitconfig

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

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

*.csv diff=my_diff

[*] 外部 diff 工具的命令将由 git 调用,其中 7 个参数在手册中的GIT_EXTERNAL_DIFF下详述

于 2018-10-15T15:42:57.323 回答
2

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

于 2012-09-11T14:14:02.347 回答