1

我已添加path/to/compiled/file.css -diff到我的.gitattributes文件夹中。

git diff --no-ext-diff尊重偏好,只是让我知道二进制文件已更改,但git diff(配置为使用 Araxis Merge 作为 gui diff)没有。当 Araxis 点击编译的 css 文件时,我得到一个旋转的沙滩球。

任何想法如何让 Araxis 尊重我的意愿?

4

1 回答 1

1

Git 通过调用外部工具命令与外部工具进行通信:

$command $LOCAL $REMOTE

因此,即使 git 知道它不应该尝试计算给定文件的差异,它也无法将其传达给外部工具。

外部工具只能通过查看扩展名来猜测哪些文件是二进制文件。而且,在这种情况下,“css”不会被识别为二​​进制。

因此,没有办法通知外部工具忽略 css 文件。那么,我们需要一种将文件从传递给外部工具的文件中排除的方法

您可以通过设置自定义无操作差异驱动程序来做到这一点:

$ git config diff.noop.command true      # if "true" is a bash builtin in your system
or
$ git config.diff.noop.command /bin/true # if "true" is a real binary in your system

然后将该自定义驱动程序设置为与您的文件一起使用:

(at .gitattributes)
/path/to/compiled/file.css diff=noop

那应该这样做。

于 2014-02-13T21:35:49.263 回答