title: Git: Discard all changes on a diverged local branch
body: <p>I have a local topic branch that's tracking a remote branch. For the sake of argument, say the commit histories look like this:</p>
  
  <pre><code>A--B--C--O1--O2--O3 (origin/phobos)
         \
           L1--L2--L3 (phobos)
  </code></pre>
  
  <p>Having looked at the relative commit histories, I now want to discard all the changes to the local <code>phobos</code> branch and get it back to being a direct copy of <code>origin/phobos</code>, so that the local history looks like this:</p>
  
  <pre><code>A--B--C--O1--O2--O3 (phobos origin/phobos)
  </code></pre>
  
  <p>I really don't want the local changes to the <code>phobos</code> branch, and I really don't want any merges to show up in the origin repository afterwards. (So, just merging isn't what I have in mind.)</p>
  
  <p>This seems like it should be really easy, but my google-fu has failed me.  How do I do this?</p>