Title text: If that doesn't fix it, git.txt contains the phone number of a friend of mine who understands git. Just wait through a few minutes of 'It's really pretty simple, just think of branches as...' and eventually you'll learn the commands that will fix everything.
Transcript
[Cueball points to a computer on a desk while Ponytail and Hairy are standing further away behind an office chair.]
Cueball: This is git. It tracks collaborative work on projects through a beautiful distributed graph theory tree model.
Ponytail: Cool. How do we use it?
Cueball: No idea. Just memorize these shell commands and type them to sync up. If you get errors, save your work elsewhere, delete the project, and download a fresh copy.
I've been using git for 10+ years and still sometimes do this. I know I could fix it, I also pretty much know what to do to fix it. However nuking the thing from orbit and restarting takes like 30 secs, so it's never worth fixing.
Git is something that is very comfortable to use after a year or two, but when you initially start using it, it is just so easy to mess things up in ways that are unrecoverable. I remember the silly days when I'd back up all my changes first before using git since I would so regularly lose everything through a combination of git commands.
It's easy for me now, but the initial stages punish mistakes severely. It's the dark souls of source control, except it's not really fun. It's just a very beginner unfriendly tool.
I'm using Mercurial for the last 2 years at current company, before that it was 5-7 years of Git on various jobs.
It's so much better if you use it correctly (no long-living or big branches). I forgot what hell Git was sometimes.
I have used Mercurial at work for years, and Git for side projects. I screw up far less often in Mercurial, and its tools are easy to use. It's strange how thoroughly Git took over.