git diff与git diff HEAD -- file

最近,自己开始接触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。

猜你喜欢

转载自blog.csdn.net/qq_42029579/article/details/80944326