gitgit-reset

Unstaged changes left after git reset --hard


After git reset --hard, git status gives me files within the Changes not staged for commit: section.

I've also tried git reset ., git checkout -- . and git checkout-index -f -a, to no avail.

So, how can I get rid of those unstaged changes?

This seems to hit only Visual Studio project files. Weird. See this paste: http://pastebin.com/eFZwPn9Z. What is special with those files, is that in .gitattributes I have:

*.sln        eol=crlf
*.vcproj     eol=crlf
*.vcxproj*   eol=crlf

Also, autocrlf is set to false in my global .gitconfig. Could that be somehow relevant?


Solution

  • Okay, I've kind of solved the problem.

    It seemed that the .gitattributes file, containing:

    *.sln        eol=crlf
    *.vcproj     eol=crlf
    *.vcxproj*   eol=crlf
    

    made the project files appear unstaged. I am clueless why that is, and I'm really hoping that someone privy to the ways of git will give us a nice explanation.

    My fix was to remove these files, and to add autocrlf = false under [core] in .git/config.

    This does not amount to exactly the same thing as the previous configuration, as it requires every dev to have autocrlf = false. I'd like to find a better fix.

    EDIT:

    I commented the incriminating lines, uncommented them and it worked. What the ... I don't even ... !