"暂存区就没有任何内容了"
Topic source比如说你有新建文件d.txt,一开始里面的内容是
hello
然后你commit了
PS Z:\> git add d.txt
PS Z:\> git commit -m first
[master (root-commit) e78b982] first
1 file changed, 1 insertion(+)
create mode 100644 d.txt
这时候你又在文件中加上了world,所以这时文件的内容就是
hello world
这时候你运行git diff ,这个命令的作用是比较暂存区的内容和工作区的差异。
如果按照教程所说,暂存区是干净的,那么这个命令没有输出。
然而这时候会输出
PS Z:> git diff diff --git a/d.txt b/d.txt index ef0493b..f35d3e6 100644 --- a/d.txt +++ b/d.txt @@ -1 +1 @@ -hello +hello world
说明暂存区并不是空的,只是把最近的更新同步到了版本库,也就是层主说的观点。
@__ImCaCO3
以我少有的经验来说
- git diff, 比较的是 a(已提交仓库) b(工作区, 本地文件)
- git diff --cached, 比较的是 a(已提交仓库) b(暂存区 Staged)
@fighterleslie
commit 之后暂存区是空的.
@magicdawn 经过试验:
git diff
是比较的是a(暂存区)和 b(工作区,本地文件),而并不是像您所描述的那样,a是已提交仓库。git diff --cached
比较的是a(已提交仓库)和 b(暂存区)
一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的
说的很清楚,提交后,啥也没做那工作区就是干净的,上面举的例子修改了都没提交肯定不是干净的啊。。=、= 就不能看清上下文么。。醉了也是。。
- 1
- 2
fighterleslie
这句话不妥,暂存区不是没有任何内容了,而是暂存区的内容都已经同步到了最近的一次提交,但内容还是存在的。
上述命令可以对比暂存区和最近一次提交的不同