命令格式
git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>
命令参数
--src-prefix=<prefix>
指定源文件的前缀来代替 "a/"。
--dst-prefix=<prefix>
指定目标文件的前缀来代替 "b/"。
--no-prefix
不显示源文件与目标文件的前缀。
实例
a) 比较工作区与暂存区的差异。
$ git diff
b) 比较暂存区与上次提交的差异,显示的是下次不带 -a 选项的 commit 操作时提交的内容。
$ git diff --cached
c) 比较工作区与上次提交的差异,显示的是下次带 -a 选项的 commit 操作时提交的内容。
$ git diff HEAD
d) 比较当前工作区与 dev 分支的差异。
$ git diff dev
e) 比较当前工作区与上次提交的差异,但仅比较 ./src 文件(或目录)。
$ git diff HEAD -- ./src
f) 比较上上次提交与上次提交的差异。
$ git diff HEAD^ HEAD
g) 比较 dev 分支与 master 分支的差异。
$ git diff dev master # or $ git diff dev..master
h) 显示自从 dev 分支从 master 分支新建后,maser 分支的变化。
$ git diff dev...master
i) 比较本地 master 分支与远程仓库 origin 的 master 分支的差异。
$ git diff master origin/master