title: How to avoid git rebase killing merge commits?
body: <p>Given the following <code>git</code> history:</p>
  
  <pre><code>    C-I    origin/master
     /
  A-B-F-G-H  master
   \   /
    D-E      branch-b
  </code></pre>
  
  <p>I want to rebase my local <code>master</code> branch on top of <code>origin/master</code>, but I want to preserve the merge commit <code>G</code>. When I tried simply doing a <code>git rebase origin/master</code> while at <code>master</code> it squashed <code>D..E</code> as <code>G</code> and committed that with the commit message of <code>E</code>, so the history that there was a merge was lost. Is there some way of preserving this merge while still getting the rebase? For clarity, my intended result is:</p>
  
  <pre><code>A-B-C-I-F-G-H  master
   \       /
    D-----E      branch-b
  </code></pre>