git diff 引擎将整个文件视为已更改,但实际上它没有更改。例如,采取这个提交:https ://github.com/etiago/phpvirtualbox/commit/626e09958384f479f94011ac3b8301bd497aec51
在这里我们看到文件lib/vboxconnector.php有 2807 个添加和 2778 个删除。此外,通过手动执行 git diff 我发现确实,整个文件被视为删除(用减号标记),而一个全新的文件被视为添加。然而,这些文件有很多共同点,Git 只是忽略了这些。
我查看了diff 返回相同文件的整个文件,但情况似乎并非如此,因为两个提交之间不存在空白更改。
此外,获取文件的两个提交(和中的一个626e09958384f479f94011ac3b8301bd497aec51
)626e09958384f479f94011ac3b8301bd497aec51^1
并使用 Meld 对它们进行比较,我得到了正确的差异分析。