title: Does git diff use only info in staging area?
body: <p>In git manual for git diff, it says "this form is to view changes made relative to the index".  Does git only uses the info from staging area for the comparison? Is it accurate to say that internally the index (staging area) contains complete object info from the last commit snapshot (and whatever else is staged at the moment)?</p>
  
  <pre><code>git diff [--options] [--] [&lt;path&gt;...]
             This form is to view the changes you made relative to the index (staging area
             for the next commit). In other words, the differences are what you could tell
             Git to further add to the index but you still haven't. You can stage these
             changes by using git-add(1).
  </code></pre>