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