Git diff HEAD vs
git diff HEAD和git diff --staged什么git diff --staged ? 我尝试了两个,但都给出了相同的输出。
假设这个输出为git status :
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: y
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: x
#
正如你所看到的,有一个文件被修改了,但没有被提交进行提交,并且添加了一个新的文件,这个文件已经准备好提交。
git diff --staged将只显示对“staged”区域中文件的更改。
git diff HEAD将显示对被跟踪文件的所有更改。 如果您的所有更改都进行了提交,那么这两个命令都会输出相同的结果。
你将能够更容易地看到两个diff与upcomming(Git 2.3.4+,Q2 2015) git status -v -v之间的区别
请参阅Michael J Gruber mjg提交4055500,它很好地解释了git diff HEAD和git diff --staged之间的git diff --staged :
commit / status :使用-v -v显示index-worktree diff
给定-v时,长格式的git commit和git status显示HEAD和索引之间的差异。 这允许预览提交 。
他们还列出了跟踪文件与unstaged更改,但没有差异。
引入' -v -v ', 除了 HEAD索引diff 之外 ,它还显示索引和工作树之间的差异。 这允许查看可能从提交中遗漏的未分离的更改 。
在' -v -v '的情况下,增加标题行
Changes to be committed:
# and
Changes not staged for commit:
在diff之前插入,与状态部分相同; 后者以50 *“ - ”开头,以使其突出更多。
git diff查看阶段和工作目录之间的区别 git diff --staged HEAD和Stage之间的视图差异 git diff HEAD HEAD和工作目录之间的视图区别 
img src


img src
上一篇: Git diff HEAD vs
