Git diff 看到整个文件在没有更改时被更改

Git diff 引擎看到整个文件在没有更改时被更改。例如,以这个提交为例: https://github.com/etiago/phpvirtualbox/commit/626e09958384f479f94011ac3b8301bd497aec51

这里我们看到文件 Lib/vboxConnector.php有2807个添加和2778个删除。此外,通过手动 git diff,我发现实际上,整个文件都被作为删除(用减号标记) ,而一个全新的文件被作为添加。但是,这些文件有很多共同点,Git 只是忽略了它们。

我看过 返回相同文件的整个文件,但似乎并非如此,因为两次提交之间不存在空格更改。

此外,对文件进行两次提交(626e09958384f479f94011ac3b8301bd497aec51626e09958384f479f94011ac3b8301bd497aec51^1中的提交)并使用 Meld 对它们进行区分,我得到了正确的差异分析。

为了方便起见,我已经将这个文件的两次提交上传到我的 Dropbox: 提交 _ 1 提交 _ 2

59056 次浏览

vboxconnector.php_1中,每一行都被 CR LF序列终止。

vboxconnector.php_2中,每条线路仅由 LF终止。

因此,文件的每一行都发生了变化。

尝试使用 git diff --ignore-space-at-eol

您还可以在 这个问题的答案中找到一些有用的信息。