-------------------------
| HEAD |
-------------------------
| |
git diff --cached | |
V |
------------ |
| Index | | git diff HEAD
------------ |
| |
git diff | |
V V
--------------------
| Working Tree |
--------------------
git diff
To see the changes between the working directory
and the index. This shows what has been changed,
but is not staged for a commit.
git diff --cached
To see the changes between the index and the HEAD
(which is the last commit on this branch). This
shows what has been added to the index and staged
for a commit.
git diff HEAD
To see all the changes between the working
directory and HEAD (which includes changes in the
index). This shows all the changes since the last
commit, whether or not they have been staged for
commit or not.