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
http://git-scm.com/docs/git-diff
Git CMD - diff: Show changes between commits, commit and working tree, etc
原文:http://www.cnblogs.com/huey/p/5089584.html