title: How to do the "inverse" of `git rebase <some-branch>`?
body: <p>In the history below, assume that commits <code>B</code> through <code>E</code> are completely independent from commits <code>F</code> through <code>I</code>.</p>
  
  <pre><code>                       br-1            master
    ⋯ ---A---B---C---D---E---F---G---H---I
  </code></pre>
  
  <p>How do I end up with a history that looks like this:</p>
  
  <pre><code>                       master
    ⋯ ---A---F'--G'--H'--I'
          \
           `-B---C---D---E
                         br-1
  </code></pre>
  
  <p>?</p>
  
  <p><code>br-1</code> and <code>master</code> are meant to be branches.  The prime in <code>F'</code> is meant to indicate that <em>commit</em> <code>F'</code> <em>consists of exactly the same changes as those that went into commit</em> <code>F</code>.  Similarly for <code>G'</code>, <code>H'</code>, and <code>I'</code>.</p>
  
  <p>(The desired operation is, effectively, the inverse of doing <code>git rebase br-1</code> from <code>master</code>, starting from the second history shown above.)</p>