This is the same answer as another one of my questions re git troubles.
I’m on a mac, and this obscure config change seemed to fix all my woes regarding unstaged changes when there were none.
git config --global core.trustctime false
I think it’s to do with differences between windows file times, linux file times and mac file times. who knows, feel free to comment if you do.
Update: This blog post explains what’s going on, sort of.