title: How to rebase backwards, preferably without using diff/apply?
body: <p>I have the following commit history:</p>
  
  <pre><code>(master)              (topic)   (quickfix)
         a -&gt; b -&gt; c -&gt;       d -&gt;         e
  </code></pre>
  
  <p>I want to modify it so that it looks like so:</p>
  
  <pre><code>     (master, quickfix)              (topic)   
  a -&gt;                  e -&gt; b -&gt; c -&gt;       d
  </code></pre>
  
  <p>In other words, <code>master</code> was at a commit <code>a</code>. I started working on a <code>topic</code> branch, but while on that branch I saw an issue and made a fix to unrelated code. I did this in a <code>quickfix</code> branch, but the branch was from <code>topic</code> instead of <code>master</code>. I'd like to merge <code>quickfix</code> back into <code>master</code>, but <em>without</em> any of the changes that were made in <code>topic</code>.</p>
  
  <p>I know I can use diff/apply to ultimately get where I want to go, but this has happened to me a few times and I find the diff/apply workflow a little cumbersome. Is there a feature in git that makes this easier?</p>