本文介绍git diff命令的几种不同的使用场景,可以比较工作区与最后一次commit的差异,可以比较staged状态的文件与最后一次commit的差异,还可以比较不同分支之间的差异。
git diff命令,可以用来比较git工作区与仓库的差异(即最后一次commit后的版本):
git diff
这是默认的用法。
也可以用来比较staged文件与仓库的差异(即最后一次commit后的版本):
git diff --staged
git diff --cached
--staged和--cached是一样的,在Git中是同义词,这也就解释了stage的含义。
还可以用来比较不同的分支(branch)的差异:
git diff master
这是用当前分支与master分支比较,一般我们不会直接在master分支干活,都会先创建一个分支,干完验证后,再merge入master。
比较某一个文件的差异
git diff filename
git diff branchname filename
后一个命令格式,是与某个分支的某个文件的比较。
--stat,--shortstat
stat参数可以使git diff命令只显示变化的统计信息,这两个参数在git log命令中的效果一样。
xinlin@ubuntu:~/repos/smally$ git diff master --stat
README.md | 66 ------------------------------------------------------------------
smally.py | 35 +++++++++++++++++++++++++++++++----
2 files changed, 31 insertions(+), 70 deletions(-)
xinlin@ubuntu:~/repos/smally$ git diff master --shortstat
2 files changed, 31 insertions(+), 70 deletions(-)
Linux的命令,包含无数的参数和细节,只有的不停地使用过程中,才能慢慢的融会贯通,熟能生巧。Git命令也是一样的,无数的细节无数的参数,自己常常用到的没几个。