title: why `git diff` reports no file change after `git add`
body: <h2> Why is that <code>git diff</code> thinks there are no changes</h2>
  
  <p>..even if <code>git status</code> reports them as <em>modified</em>?</p>
  
  <pre><code>$ git status
  On branch master
  Your branch is ahead of 'origin/master' by 2 commits.
    (use "git push" to publish your local commits)
  
  Changes to be committed:
    (use "git reset HEAD &lt;file&gt;..." to unstage)
  
      new file:   file-added
      modified:   file-with-changes   &lt;&lt; it knows there are changes
  </code></pre>
  
  <p>but in order to see the difference, I need to explicitly add the last reversion hash..</p>
  
  <pre><code>$ git diff
    (nothing)
  
  $ git diff rev-hash
  diff --git a/file-with-changes b/file-with-changes
  index d251979..a5fff1c 100644
  --- a/file-with-changes
  +++ b/file-with-changes
  .
  ..
  </code></pre>