我目前使用meld
作为Git diff工具。这很好用,但我也有一些PDF版本控制下的PDF文件。总是当我发出git diff
时,我会收到通知我的丑陋信息,这些信息无法比较这些二进制文件。
今天,我发现diffpdf
效果很好。但是如何配置git以便为PDF使用diffpdf(并且仅适用于它们)?
我已经将git配置为像这样使用meld:
创建名为git-meld
的脚本:
#!/bin/bash
meld "$2" "$5"
使其可执行:chmod +x git-meld
git config --global diff.external git-meld
但显然我不能简单地采用这种方式同时使用diffpdf和meld。
答案 0 :(得分:9)
您需要查看gitattributes
手册页。基本上,您创建一个外部差异驱动程序,指定用于比较特定类型文件的自定义命令(这在~/.gitconfig
或${PROJECT}/.git/config
中):
[diff "pdfdiff"]
command = diffpdf
然后指定某些类型的文件使用该差异驱动程序(${PROJECT}/.gitattributes
或{PROJECT}/some/subdir/.gitattributes
):
*.pdf diff=pdfdiff
然后除了pdf文件之外的所有内容都将使用您的普通git diff
默认值,但是当您diffpdf
时,pdf文件会调用git diff
...
答案 1 :(得分:0)
您可以使用git difftool
(man git difftool)。
$ git difftool #opens in the tool defined in config: git config --get diff.tool
$ git difftool --tool meld # Opens in meld, regardless of what you configured.
$ git difftool --tool diffpdf # Opens in diffpdf.