WickyNilliams WickyNilliams - 3 months ago 18
Git Question

Git cannot undo modified files

I just want to get back to a clean working directory, exactly as it was after my last commit. Git is reporting to me a load of file modifications that I haven't made, so I suspect it's something to do with line endings.

I have tried all the usual suspects to do this:

git reset --hard

git commit -- .

git stash

git clean -fd


No matter what I do,
git status
always shows the same files as having been modified. What can I do? I have uncommitted changes stashed in another branch so I don't want to just blast away everything, but rather just "roll back" my master branch.

EDIT: Output

$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: demo/index.html
# modified: demo/js/app.js
# modified: demo/js/libs/jquery.1.7.1.js
# modified: demo/js/libs/matchMedia.js
# modified: demo/js/libs/modernizr.js
# modified: demo/js/loadr.js
# modified: dist/enquire.js
# modified: src/include/intro.js
#
no changes added to commit (use "git add" and/or "git commit -a")


Then I try what is suggested and everything else I could find:

WickyNilliams at Nick MBA in ~/Repositories/enquire on master*
$ git checkout -- .
WickyNilliams at Nick MBA in ~/Repositories/enquire on master*
$ git reset --hard
HEAD is now at d70fee4 added meta tag to test demo on mobile #10
WickyNilliams at Nick MBA in ~/Repositories/enquire on master*
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: demo/index.html
# modified: demo/js/app.js
# modified: demo/js/libs/jquery.1.7.1.js
# modified: demo/js/libs/matchMedia.js
# modified: demo/js/libs/modernizr.js
# modified: demo/js/loadr.js
# modified: dist/enquire.js
# modified: src/include/intro.js
#
no changes added to commit (use "git add" and/or "git commit -a")


As you can see, no changes despite the rollback.

So then I followed advice and ran a diff ignoring all space, and as suspected it seems there's no differences when ignoring spaces - so i guess it was line endings! What can I do to fix this? I've set to
autocrlf
to
true
to no avail.

Answer

If you want to just change a file back to the way it was after the last commit, just do a git checkout [file] to get a particular file. But a git reset --hard should have done that to the whole tree. If you think it's just the line-endings, do a git diff and then a git diff --ignore-all-space. If the first diff shows changes and the second one doesn't, then at least you know you have a line-ending problem, in which case you might want to look at this description of git and line endings.

Comments