以下git命令有什么区别?
git diff HEADgit diff HEAD^git diff --cached 或同义词 git diff --stagedgit diffAmb*_*ber 115
git diff HEAD - 显示自上次提交以来发生的变化.git diff HEAD^- 显示自最近一次提交之前提交以来发生的更改.git diff --cached- 显示已添加到索引git add但尚未提交的内容.git diff- 显示已更改但尚未添加到索引的内容git add.它看起来像这样:
Working
Directory <----+--------+------+
| | | |
| | | |
V | | |
"git add" | | |
| diff | |
| | | |
V | | |
Index <----+ diff HEAD |
| | | |
| | | |
V | | |
"git commit" | | |
| diff --cached | |
| diff --staged | |
V | | |
HEAD <----+--------+ |
| |
| diff HEAD^
V |
previous "git commit" |
| |
| |
V |
HEAD^ <--------------------+
Run Code Online (Sandbox Code Playgroud)
git diff HEAD :HEAD和工作目录之间的差异.git diff HEAD^ :HEAD的直接祖先和工作目录之间的差异.git diff --cached或同义词git diff --staged:HEAD和索引之间的差异.git diff :索引和工作目录之间的差异.小智 5
这是记住这些命令的简单方法:
git diff的源假定为工作目录,其目标为索引。--cached标志会将源更改为索引。添加更多参数后,它不一定会更改目标。但是为了方便起见,如果未提供目标,则目标将成为最后的提交。玩得开心,将它们混合在一起以达到自己的喜好:)