我已经设置了git diff,当在二进制文件上调用它时,它将使用自定义程序作为textconv,该程序在.gitconfig文件中指定。看起来像这样
[diff "file"]
textconv = python "'/path/to/program.py'"
xfuncname = .*name=.*
[core]
attributesfile = ~/.gitattributes
以及我拥有的.gitattributes文件中
*.file diff=file
如果将其应用于我的git repo和终端中,则可以正常工作。但是,我的公司使用TortoiseGit作为git的前端,它带来了自己的diff工具,而我无法使用textconv选项。为了查看差异,我提供了类似的命令
cmd /K git diff %base %mine
输出将是
diff --git "a/path/in/repo.file" "b/temporary/path/out/of/repo.file"
index e4ab82c..3c0f4d7 100644
Binary files "a/path/in/repo.file" and "b/temporary/path/out/of/repo.file" differ
通常git会将textconv应用于二进制文件,并且如果提供的是“ HEAD”而不是“%base”,那么它将正常工作。我怀疑git就像使用--no-index调用一样运行,并且忽略了.gitattributes文件,因此现在不必应用textconv了。
有没有办法解决这个问题?
答案 0 :(得分:2)
使用--textconv
选项强制进行textconv转换:
cmd /K git diff --textconv %base %mine