gdiff
Show changes of all the files (staged, unstaged, untracked etc.) in one scrollable list.
Table of contents
Demo
Internals
git diff -- <filepath>
view the changes you made relative to the index (staging area for the next commit).
git diff --cached -- <filepath>
view the changes you staged for the next commit relative to HEAD.
git diff -- <oldpath> <newpath>
compare changes in the given two paths (while renaming a file).
git diff --cached -- <oldpath> <newpath>
compare changes if the ranamed file is staged for the next commit.