What is the difference between git diff HEAD vs. git diff --staged?

前端 未结 5 726
予麋鹿
予麋鹿 2021-01-29 19:18

What is the difference between git diff HEAD and git diff --staged? I tried both but both give the same output.

5条回答
  •  Happy的楠姐
    2021-01-29 19:45

    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 and git 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 the HEAD 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.

提交回复
热议问题