title: How can I limit git-diff to one directory only, without its children?
body: <p>I'm using <code>git diff --name-status</code> to track which files have been modified/added/removed/renamed/copied between two commits, and it works great.</p>
  
  <p>Now suppose I move file <code>file1</code> to <code>newdir/file1</code>, commit, and then run git diff, I get this:</p>
  
  <pre><code>$ git diff --name-status -C HEAD~1 HEAD
  R100    file1    newdir/file1
  </code></pre>
  
  <p>Is there a way to ask git to limit itself to the list of changes inside a given directory but not its children? I'd like to know the exact changes both for the root directory and for the <code>newdir</code>directory, separately. For <code>newdir</code>, it's easy:</p>
  
  <pre><code>$ git diff --name-status -C HEAD~1 HEAD -- newdir
  A       newdir/file1
  </code></pre>
  
  <p>… but how can I obtain the "complementary" diff info in the root directory? I.e., this output:</p>
  
  <pre><code>$ git diff ???
  D       file1
  </code></pre>
  
  <p>Note that I want to keep the <code>-C</code> option to detect renames and copies inside the same directory.</p>