I staged a few changes to be committed; how can I see the diff of all files which are staged for the next commit? I’m aware of git status, but I’d like to see the actual diffs – not just the names of files which are staged.
I saw that the git-diff(1) man page says
git diff [–options] [–] […]
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).
Unfortunately, I can’t quite make sense of this. There must be some handy one-liner which I could create an alias for, right?
It should just be:
git diff --cached
--cached means show the changes in the cache/index (i.e. staged changes) against the current
--staged is a synonym for
--cached does not point to
HEAD, just difference with respect to
HEAD. If you cherry pick what to commit using
git add --patch (or
git add -p),
--staged will return what is staged.