Your file is already staged to be committed. You can show it's diff using the --cached option of git. To unstage it, just do what git status suggests in it's output ;) You can check The Git Index For more info.
Indexing. For every tracked file, Git records information such as its size, creation time and last modification time in a file known as the index. To determine whether a file has changed, Git compares its current stats with those cached in the index. If they match, then Git can skip reading the file again.
I have resolved this problem using following steps
Remove every file from Git's index.
git rm --cached -r .
Rewrite the Git index to pick up all the new line endings.
git reset --hard
Note that step 2 may remove your local changes. Solution was part of steps described on git site https://help.github.com/articles/dealing-with-line-endings/
Have you changed the mode of the files?
I did it on my machine and the local dev machine had 777 given to all the files whereas the repo had 755 which showed every file as modified. I did git diff
and it showed the old mode and new mode are different.
If that is the problem then you can easily ignore them by
git config core.filemode false
Cheers
Update: as per the comment on this question, the problem has been solved:
That is easy: the first file has CRLF line-ends (windows), the second LF (Unix). The
file
util (available in git\usr\bin) will show you that (file a b
will reply something likea: ASCII text, with CRLF line terminators b: ASCII text
)
Original answer below:
The diff you show does not show a single different line. Can you post .git/config (or better git config -l
).
You might have some whitespace ignores activated
You should try to disable core.whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol
;
also
git show HEAD:myfile|md5sum
md5sum myfile
could be used to verify that the files are in fact different. Using external diff could work as well
git show HEAD:myfile > /tmp/myfile.HEAD
diff -u myfile /tmp/myfile.HEAD
# or if you prefer an interactive tool like e.g.:
vim -d myfile /tmp/myfile.HEAD
I had the same problem. After win->lin copy I've got all files modified. I used fromdos to fix line endings and then
git add -uv
to add changes. It added 3 files (not all of them), which I actually modified. After that git status shows only 3 modified files. After git commit everything is ok with git status.
In my case the files were appeared as modified after changing the files permissions.
To make git ignore permission changes, do the following :
# For the current repository
git config core.filemode false
# Globally
git config --global core.filemode false
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With