I am using git repository. Everything is working properly except git diff command.
Whenever I modify any file then git diff command showing entire file is modified even though I modified small portion of the code.
What could be the reason git diff showing entire file modified instead of small portion of the code?
Also let me know setting of git diff configuration.
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. + */ +?>
Compare the output of git diff
and git diff -b
. Whitespace may be to blame. Reflowing text might be another (you didn't mention what you were storing).
The file is either stored in unix mode or windows mode (with different line endings) and when you save the file you save it in the opposite format.
Is your editor set to automatically reformat code? Could it be the file used to use tabs for indentation and you changed it to use spaces for instance?
Try checking the files encoding. It seems that files with the same content but different encoding are marked as totally different.
Try running this command. It works fine for me:
git diff -U0 Filename | grep -v "diff\|index\|@@\|+++\|\---"
This command is basically removing lines containing "diff" , "index", "---" ,"+++" , "@@" using "grep -v" command and -U0 removes extra lines displayed above and below the modified lines.
Try this for a file with one line change, you will understand it better :)