http://blog.csdn.net/u013485584/article/details/53303858
最近,自己开始接触git。在学到git diff时,一直困惑。git diff到底比较的是那个两个文件之间的差异。经过在网上搜网,终于找到乐答案。
这里分为两种情况,一种是当暂存区中有文件时,另一种是暂存区中没有文件。
(1)当暂存区中没有文件时,git diff比较的是,工作区中的文件与上次提交到版本库中的文件。
(2)当暂存区中有文件时,git diff则比较的是,当前工作区中的文件与暂存区中的文件。
而 git diff HEAD -- file,比较的是工作区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而file指的是当前工作区中的文件。
补充:git diff命令比较的是工作目录中当前文件与暂存区快照之间的差异,也就是修改之后还没有暂存起来的变化内容。
注意:git diff本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。所以,有时候你一下子暂存了所有更新过的文件后,运行git diff后却什么也没有,就是这个原因。
如果要查看已暂存的将要添加到下次提交里的内容,可以使用git diff --cached或者git diff --staged。
网友评论