Sometimes things go wrong and we want to start from scratch. Provided you’re using Git as your version control system, it’s highly probable you’re a friend of
git reset --hard.
However, I’ve found cases when git reset –hard doesn’t work. Things like
-f parameter doesn’t work either.
I did however found out, that sometimes on Windows machines, line endings like to live their own lives and switch randomly between CRLF and LF.
I found a solution I want to share with you. However, I do not see myself as a Git pro, so if you found out other one for such issue, let me know! 😇
First thought would be to just stop git from doing so.
Generally in either your global or repository config you have section called
core. An entry called autocrlf resides there and is often responsible for behavior mentioned above.
Quick fix for this would be to just set the flag to false by calling in your repo (or adding
--global after config for global scope):
git config core.autocrlf false
If config change fails
Been here, seen that. It seems that sometimes there is an issue with line endings that is also driven by
.gitattributes file, even if it is not present in repository!
A fix for this is to remove (non-exisiting)
.gitattributes, then stage the change and then reset changes like you used to do:
git rm .gitattributes
git add -A
git reset --hard
git add -A is necessary here and it can’t be changed to
git add * because it won’t stage file deletion that we did with
If you do have
.gitattributes included in your repository, you might want to actually tweak it with proper line endings per extension defined instead. 🔨