显示整个文件的Git diff命令被修改,而不是显示修改过的小部分代码

时间:2011-05-26 05:26:52

标签: git

我正在使用git存储库。一切正常,除了git diff命令。 每当我修改任何文件时,即使我修改了一小部分代码,也会修改显示整个文件的git diff命令。

git diff显示修改整个文件而不是代码的一小部分可能是什么原因? 另请告诉我git diff配置的设置。

diff --git a/application/routes.php b/application/routes.php
index 2842f8d..6629d16 100755
--- a/application/routes.php
+++ b/application/routes.php @@ -1,671 +1,676 @@ -<?php -/** - * Set the routes. Each route must have a minimum of a name, a URI and a set of - * defaults for the URI. - / -?> +<?php +/* + * Set the routes. Each route must have a minimum of a name, a URI and a set of + * defaults for the URI. + */ +?>

5 个答案:

答案 0 :(得分:23)

比较git diffgit diff -b的输出。空白可能是罪魁祸首。回流文本可能是另一个(你没有提到你存储的内容)。

答案 1 :(得分:11)

文件存储在unix模式或Windows模式下(具有不同的行结尾),当您保存文件时,将以相反的格式保存文件。

答案 2 :(得分:1)

您的编辑器是否设置为自动重新格式化代码?它可能是用于缩进标签的文件,你改变它来使用空格吗?

答案 3 :(得分:1)

尝试运行此命令。它适用于我:

git diff -U0 Filename | grep -v "diff\|index\|@@\|+++\|\---"

这个命令基本上是使用“grep -v”命令删除包含“diff”,“index”,“---”,“+++”,“@@”的行,-U0删除上面显示的额外行和在修改后的线下面。

尝试使用一行换一个文件,你会更好地理解它:)

答案 4 :(得分:1)

尝试检查文件编码。似乎具有相同内容但编码不同的文件被标记为完全不同。