------------------------- | 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.