我正在使用kdiff3作为difftool。当我使用 git difftool 命令时,它还向我显示完全相同的文件。甚至 kdiff3 也会弹出一条消息,指出文件是"二进制相等"的(尽管它们是文本文件)。有没有办法避免显示未更改的文件?
我在使用 Beyond Compare 作为我的 difftool 时遇到了同样的问题。对我来说,这是一个行尾问题。
我注意到当我运行 git diff(而不是 git difftool)时,我在 Beyond Compare 中看到的没有变化的相同文件与消息一起显示
warning: LF will be replaced by CRLF in <path to file>
The file will have its original line endings in your working directory.
您可能会说:"但是等等,我知道这不是行尾问题,因为当我在 Kdiff3 中打开它时,它没有显示任何行尾更改。这与该警告消息的"文件将在您的工作目录中具有其原始行尾"部分有关。
我认为自己是一个非常称职的 git 用户,但我承认我从来没有勇气真正深入研究它如何处理行尾更改。所以我不知道所有的细节,但我知道 git 可以做一些幕后魔术来向您展示您的操作系统喜欢的行尾,即使这不完全是存储在存储库中的内容。
我能够按照这些说明绕过奇怪的文件,并使我的.git/info/attribute文件看起来像这样:
* -crlf
也许您已经在 Diff(在配置下)中启用了一些预处理器命令,这就是为什么二进制文件可能相同。
如果要隐藏它们,则需要在目录->文件比较模式(完整分析)下进行全面分析。它将隐藏已处理的文件。
但第一步是在另一个 diff 应用程序中检查它(像往常一样确保文件结尾匹配或忽略)。