title: Rebase a branch without checking it out
body: <p>So I'm working on a project that sometimes has long build times, and the build is clobbered very often. If I have an older branch with some work going on (which has been committed, but is based on an older parent), running <code>git checkout oldbranch</code> changes the working dir to represent all the old code, which makes me need to run a full build again.</p>
  
  <p>However, usually I've only modified one or two files, and the rest don't need to be reset. What I'd like to do is to rebase this branch to the current master head, and preserve those changes to the files.</p>
  
  <p>Basically, if <code>a.rs</code> and <code>b.rs</code> have been modified, then I need a way of making these changes base themselves onto the current head, without touching any files other than those two.</p>
  
  <p>Is there a git-ish way of doing this? Currently I'm juggling patch files to do this.</p>