If I run git diff I see the changes in my working tree, and if I run git diff --staged (alternatively --cached) then I see the changes
Is there a way with git diff to see all in one go?
There is, with Git 2.4.0+ (April 2015).
See commit 4055500 from Michael J Gruber mjg:
commit/status: show the index-worktree diff with-v -v(or-vv)
git commitandgit statusin long format show the diff between HEAD and the index when given-v. This allows previewing a commit to be made.They also list tracked files with unstaged changes, but without a diff.
Introduce '
-v -v' (or-vv) which shows the diff between the index and the worktree in addition to theHEADindex diff. This allows a review of unstaged changes which might be missing from the commit.In the case of '
-v -v' (or-vv), additional header linesChanges to be committed:and
Changes not staged for commit:are inserted before the diffs, which are equal to those in the status part; the latter preceded by 50*
-to make it stick out more.
In the OP's case, a simple git status -v -v (or git status -vv) will show both staged and unstaged diffs.