For some paths, the other answers will return an error of the form fatal: ambiguous argument
.
In these cases diff needs a separator to differentiate filename arguments from commit strings. For example to answer the question asked you'd need to execute:
$ git diff --cached -- <path-to-file>
This will display the changes between the modified files and the last commit.
On the other hand:
git diff --cached HEAD~3 <path-to-file>
will display the changes between the local version of and the version three commits ago.