title: Recovering 'old commits' from multiple git rebases
body: <p>I am aware of <a href="https://stackoverflow.com/questions/134882/undoing-a-git-rebase">this</a> question, but not to sure how to map it to my current situation. (Rebase is scary, undoing rebase is double scary!)</p>
  
  <p>I started out with several different feature branches of my master:</p>
  
  <pre><code>master    x-x-x-x-x-x-x-x-x-x
               \       \    \
  FeatureA      1-2-3   \    \
  FeatureB               A-B  \
  FeatureC                     X-Y-Z
  </code></pre>
  
  <p>I wanted to merge them all together and check they worked before merging back onto the top of master, so I did a:</p>
  
  <pre><code>git checkout FeatureB
  git rebase FeatureA
  git mergetool //etc
  git rebase --continue
  </code></pre>
  
  <p>Then</p>
  
  <pre><code>git checkout FeatureC
  git rebase FeatureB
  git mergetool //hack hack
  git rebase --continue
  </code></pre>
  
  <p>Which leaves me with</p>
  
  <pre><code>master    x-x-x-x-x-x-x-x-x-x
               \
  FeatureA      1-2-3 
                     \
  FeatureB            A'-B'
                           \ 
  FeatureC                  X'-Y'-Z'
  </code></pre>
  
  <p>Then I corrected some bits that didn't compile properly, and got the whole feature set to an acceptable state:</p>
  
  <pre><code>master    x-x-x-x-x-x-x-x-x-x
               \
  FeatureA      1-2-3 
                     \
  FeatureB            A'-B'
                           \ 
  FeatureC                  X'-Y'-Z'-W
  </code></pre>
  
  <p>My problem is that my colleagues tell me that we're not ready for FeatureA.</p>
  
  <p>Is there any way for me to keep all my work, but also revert to a situation where I can just rebase FeatureC on to Feature B?</p>