What is the difference between git diff HEAD
and git diff --staged
? I tried both but both give the same output.
You will be able to see more easily the difference between the two diff with the upcomming (Git 2.3.4+, Q2 2015) git status -v -v
See commit 4055500 from Michael J Gruber mjg, it does a good job explaining the difference between git diff HEAD
and git diff --staged
:
commit
/status
: show the index-worktree diff with-v -v
git commit
andgit status
in 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
' which shows the diff between the index and the worktree in addition to theHEAD
index diff. This allows a review of unstaged changes which might be missing from the commit.In the case of '
-v -v
', additional header lines
Changes 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.