title: Checkout multiple files which have been moved in the working tree
body: <p>I've moved files from <code>Project</code> to <code>Project/src</code>. Git is under the impression that I've deleted the files from <code>Project</code> and created new files in <code>Project/src</code>. </p>
  
  <p>In addition, I have multiple other changes in the working tree, which I wish to commit. My <code>git status</code>:</p>
  
  <pre><code>
   $ git  status
  # On branch feature/cmake
  # Changes to be committed:
  #   (use "git reset HEAD ..." to unstage)
  #
  #   new file:   .gitignore
  #   new file:   CMakeLists.txt
  #   deleted:    Wasa.xcodeproj/project.pbxproj
  #   deleted:    Wasa/Wasa.1
  #   renamed:    Wasa/main.cpp -> main.cpp
  #   new file:   src/CMakeLists.txt  
  #  Lots of new files listed here
  #
  # Changes not staged for commit:
  #   (use "git add/rm ..." to update what will be committed)
  #   (use "git checkout -- ..." to discard changes in working directory)
  #
  #   modified:   CMakeLists.txt
  #   deleted:    IODevice.h
  #  Lots of deleted files listed here.
  </code></pre>
  
  <p>I'd like to unstage the source files - <code>*.{cpp,h}</code>. I know how to unstage (the link <a href="https://stackoverflow.com/questions/348170/undo-git-add-before-commit">here</a>, for example, is helpful). What I'd like to <em>avoid</em> doing is typing lots of <code>git checkout &lt;filename&gt;</code>. </p>
  
  <p>I don't want to checkout <code>HEAD</code>, because some of the changes in the working tree I'd like to keep. I've tried doing <code>git checkout *.{cpp,h}</code>, which gives the following: </p>
  
  <pre><code>
  $ git checkout *.{cpp,h}
  zsh: no matches found: *.cpp
  </code></pre>
  
  <p>Because the files don't currently exist in the working tree, I can't check them out because <code>*.{cpp,h}</code> doesn't match any files. </p>
  
  <p>The files are all in <code>Project/src</code>; there is probably a regex or something I could run with the output of <code>ls src</code> piped into the <code>git checkout</code> command, but I'd like to know if git can do this for me by itself. Is there a way I can do this in git? </p>