使用git status命令可以查看文件的状态。但是,显示出来的文件信息并不是特别详细。我们想要查看更加详细的文件状态信息,可以使用命令git diff。
git diff命令可以帮助我们得知当前做的哪些更新还没有暂存?有哪些更新已经暂存起来准备好了下次提交? git diff 会使用文件补丁的格式显示具体添加和删除的行。
我们修改test.txt文件之后,保存。然后运行命令 git status.
这里的test.txt没有被加入到跟踪区域,显示为红色已经修改的状态。系统提示我们要先添加到暂存区才能提交。
接下来,我们运行git diff 命令。
此时,我们发现,diff命令给我们列出了我们这一次修改的文件名,文件内容。
注意,注意,注意
git diff
此命令比较的是工作目录中 当前文件 和 暂存区域快照 之间的差异,也就是修改之后还没有暂存起来的变化内容。
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff --cached 命令。(Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的,但更好记些。)来看看实际的效果。
我们先不暂存该文件,执行命令看看。
发现没有任何输出。因为现在没有任何暂存文件。
我们执行命令add,把test.txt添加到暂存区域。
然后再次执行git diff --cached命令,输出结果如下:
现在 test.txt已经添加到了暂存区,该命令比较的是暂存区和上一次提交快照之间的差异。上一次提交的快照中并没有添加
2017-11-10 添加
这句话。
git diff --cached 列出了暂存区的文件和上一次提交的文件之间的变化。
我们再次编辑test.txt文件,再添加一行:
123456
使用命令 git status看看结果:
我们看到了暂存前后的两个版本。
运行命令git diff --cached,输出结果:
并没有发现新添加的一行
123456
这是为什么呢?
前面已经讲过了,git diff --cached 是比较已经暂存区域和上一次提交的文件变化。这一次的改变并没有被添加到跟踪,所以看不到新的文件内容。
我们再次执行命令add
重新执行 git diff --cached 命令:
现在就可以看到了本次修改的内容了。
总结:
1、每修改一次文件,要想比较暂存区和上次提交的变化,都要执行 add命令。
2、git status 命令是查看文件的状态。已暂存的文件和未暂存文件都能看到状态。但是不能看到修改的内容。
3、git diff命令可以看到文件的修改的内容。比较的是未暂存的文件的修改前后的变化。
4、git diff --cached 也可以看到文件修改的内容变化,比较的是已经暂存的文件和上次提交的变化。
大家明白了吗?
祝开心。