title: Undoing a git rebase
body: <p>How do I easily undo a git rebase? A lengthy manual method is:</p>
  <ol>
  <li>checkout the commit parent to both of the branches</li>
  <li>create and checkout a temporary branch</li>
  <li>cherry-pick all commits by hand</li>
  <li>reset the faulty rebased branch to point to the temporary branch</li>
  </ol>
  <p>In my current situation, this works because I can easily spot commits from both branches (one was my stuff, the other was my colleague's stuff). However, my approach strikes me as suboptimal and error-prone (let's say I had just rebased with two of my own branches).</p>
  <p>Clarification: I am talking about a rebase during which <em>multiple</em> commits were replayed, not only one.</p>