title: Undoing a bad pull
body: <p>First of all, Git sucks.  I know, I know, it's supposed to be the best thing since sliced bread, but it sucks.  It's like trying to shave with a chainsaw: one slight mistake and there are blood and teeth everywhere.  Perhaps, if I could actually make an exact distinction between a head, a ref, a commit, a branch, a stem, a gnargel, and a whizpoo, some of this might be a little easier but to an ordinary mortal with only 10 years experience of SVN, Perforce, and RCS, it all looks like rather cranky black magic.</p>
  
  <p>Now for some reason, <code>git pull</code> has never worked for me.  I get a 10-line error message that has been, so far, about as helpful as the word "error".   Googling the error message produced a wide array of suggestions that only had in common the fact that they had no apparent affect whatsoever. But that's not today's problem: I've gotten used to typing <code>git pull origin branch</code>.</p>
  
  <p>Today, I was flipping back and forth between two branches, "master" and "lounge" and at the moment I was in the master branch.  I wanted to get the latest changes from the remote repository to the local one, but I mistyped.  Instead of writing <code>git pull origin master</code>, I wrote <code>git pull origin lounge</code> and then, without thinking, typed in the correct command.  </p>
  
  <p>There's no evidence of the first (bad) pull in log, just two merges from the master:</p>
  
  <pre><code>commit 0c6be9569bab0581244ea8603bf2edfee82cdd7b
  Merge: 43fdec5... db09f0d...
  Author: Malvolio &lt;info@xcompanyx.com&gt;
  Date:   Wed Nov 24 20:38:58 2010 -0500
  
  Merge branch 'master' of github.com:xcompanyx/xRepositoryX
  
  commit db09f0d79d744d6a354142041b47ff5d748999f3
  Merge: 81b6c3d... fc73e25...
  Author: Malvolio &lt;info@xcompanyx.com&gt;
  Date:   Wed Nov 24 17:38:16 2010 -0800
  
  Merge branch 'master' of github.com:xcompanyx/xRepositoryX
  
  commit 81b6c3d04b7c464f8750a56282635526a5ef83a1
  Author: Michael &lt;info@xcompanyx.com&gt;
  Date:   Wed Nov 24 17:38:07 2010 -0800
      the last commit I did
  </code></pre>
  
  <p>But files newly created in the lounge branch are there in my repository.</p>
  
  <p>So now I'm fscked, right?  Should I just torch my repository, clone the remote again, reapply all the unpushed changes manually, and chalk it up to Git sucking or is there some incantation I can recite that will make it all better?  Would it help if I sacrificed a goat?</p>