title: Move a sequential set of commits from one (local) branch to another
body: <p>Is there a way to move a sequential set of commits from one (local) branch to another?  I have searched quite a bit and still haven't found a clear answer for what I want to do.</p>
  
  <p>For example, say I have this:<br /></p>
  
  <pre>
  master A---B---C
                  \
  feature-1        M---N---O---P---R---Q
  </pre>
  
  <p>And I have decided that the last 3 commits would be better off like this:</p>
  
  <pre>
  master  A---B---C
                   \
  feature-1         M---N---O
                             \
  f1-crazy-idea               P---R---Q
  </pre>
  
  <p>I know I can do this, and it does work:</p>
  
  <pre>
  $ git log --graph --pretty=oneline (copying down sha-1 ID's of P, R, Q)
  $ git checkout feature-1
  $ git reset --hard HEAD^^^
  $ git checkout -b f1-crazy-idea
  $ git cherry-pick &lt;P sha1&gt;
  $ git cherry-pick &lt;R sha1&gt;
  $ git cherry-pick &lt;Q sha1&gt;
  </pre>
  
  <p>I was hoping that instead there would be a more concise way to do this, possibly with git rebase, although I haven't had much luck.</p>
  
  <p>Any insight would be greatly appreciated.  </p>
  
  <p>Thanks,</p>
  
  <p>Jamie</p>