在git提交环节,存在三大部分:working tree(工作区), index file(暂存区:stage), commit(分支:master)
working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了。
commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将index file里的内容提交到commit中,此时commit就和index file同步了。
总结一下:
git diff:是查看working tree与index file的差别的。(git add后两者就同步)
git diff --cached:是查看index file与commit的差别的。(git commit后两者就同步)
git diff HEAD:是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息,即:git commit后working tree未做任何操作,那么两者就是同步的,没有差异信息)