了解选项git diff
:
1)比较index
和working area
-git diff
2)比较HEAD
和working area
-git diff HEAD
3)比较index
和HEAD
-git diff --staged
这是真实的?
为什么在提交文件然后更改git diff --staged
它之后它不显示任何内容 - 毕竟,索引是空的,但HEAD
不是 - 即 有区别吗?
了解选项git diff
:
1)比较index
和working area
-git diff
2)比较HEAD
和working area
-git diff HEAD
3)比较index
和HEAD
-git diff --staged
这是真实的?
为什么在提交文件然后更改git diff --staged
它之后它不显示任何内容 - 毕竟,索引是空的,但HEAD
不是 - 即 有区别吗?
一般来说,git
diff
program命令显示了两棵文件和目录树之间的差异。(顺便说一下,它与diff程序非常相似)没有选项/选项的命令显示工作目录和包含在index
diff
中的树之间的差异。如果索引(还)为空,则显示与指针指向的树的差异。HEAD
如果您指定提交或指针(分支或标签)作为参数:
然后比较将在工作目录和对应于给定提交或指针的树之间进行。
如果指定选项
--cached
,则索引中包含的树将与指针指向的树进行比较HEAD
。如果索引为空,则与第一段所述类似,将有一个比较“HEAD
与HEAD
”,即 找不到差异。除了 option
--cached
,您还可以提及提交或指针:那么存储在索引中的树将不会与 比较
HEAD
,而是与给定提交或指针对应的树进行比较。同样,如果没有索引,则指向 的树HEAD
。由上述可知,命令
(在
HEAD
指向现有提交或指针的“正常”情况下)是完全等价的。见第3点:如果索引为空,那么会有一个比较“
HEAD
与HEAD
”,即 找不到差异。