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.
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.