理解 Git Diff 命令

Posted by Toby Qin on March 9, 2017

在git提交过程中,存在三大环节:

  • working tree
  • index file (staged)
  • commit

这三大环节中,你应该有一个大概的了解:

  1. working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
  2. index file:是索引文件,它是连接working treecommit的桥梁,每当我们使用git add命令来登记修改的文件后,index file的内容就改变了,此时index file就和working tree同步了。
  3. commit:这是提交更改完成的最后阶段,commit后我们的代码才真正进入了git仓库。我们使用git commit就是将index file里的内容提交到commit中。

总结一下:

  • git diff:是查看working treeindex file的差别。
  • git diff –cached:是查看index filecommit的差别。
  • git diff HEAD:是查看working treecommit的差别。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

参考文档: http://www.cnblogs.com/Alight/p/3571042.html