Maybe your changes are not lost. Check "git reflog"
I quote the article below:
"Basically every action you perform inside of Git where data is stored, you can find it inside of the reflog. Git tries really hard not to lose your data, so if for some reason you think it has, chances are you can dig it out using git reflog"
See details:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html