git diff 引擎将整个文件视为已更改,而实际上并没有更改。例如,看看这个提交:https://github.com/etiago/phpvirtualbox/commit/626e09958384f479f94011ac3b8301bd497aec51。
在这里,我们可以看到文件 lib/vboxconnector.php 具有 2807 个添加和 2778 个删除。另外,通过手动进行 git diff,我发现确实将整个文件视为删除(标记为减号),并且整个新文件视为添加。但是,这两个文件有很多共同点,Git 忽略了它们。
我查看了 diff returning entire file for identical files,但似乎并非如此,因为两个提交之间没有空格更改。
此外,使用 Meld 对文件的两个提交(
我已将文件的两个提交上传到我的 Dropbox 以方便使用:commit_1 commit_2。
在这里,我们可以看到文件 lib/vboxconnector.php 具有 2807 个添加和 2778 个删除。另外,通过手动进行 git diff,我发现确实将整个文件视为删除(标记为减号),并且整个新文件视为添加。但是,这两个文件有很多共同点,Git 忽略了它们。
我查看了 diff returning entire file for identical files,但似乎并非如此,因为两个提交之间没有空格更改。
此外,使用 Meld 对文件的两个提交(
626e09958384f479f94011ac3b8301bd497aec51
和 626e09958384f479f94011ac3b8301bd497aec51^1
)进行 diff 并分析,得到正确的差异分析。我已将文件的两个提交上传到我的 Dropbox 以方便使用:commit_1 commit_2。