1. 工作目录 VS 暂存区
$ git diff <filename>
意义:查看文件在工作目录与暂存区的差别。如果还没 add 进暂存区,则查看文件自身修改前后的差别。
也可查看和另一分支的区别:$ git diff <branch> <filename>
示例:

git diff t3.txt

diff里面a表示前面那个变量,b表示第二个变量
HEAD commit版本
Index staged版本
2. 暂存区 VS Git仓库
git diff --cached <filename>
意义:表示查看已经 add 进暂存区但是尚未 commit 的内容同最新一次 commit 时的内容的差异。
也可以指定仓库版本:git diff --cached <commit> <filename>


3. 工作目录 VS Git仓库
git diff <commit> <filename>
意义:查看工作目录同Git仓库指定 commit 的内容的差异。
<commit>=HEAD 时:查看工作目录同最近一次 commit 的内容的差异。


4. Git仓库 VS Git仓库
git diff <commit> <commit>
意义:Git仓库任意两次 commit 之间的差别。


5. 注意
以上命令可以不指定 <filename>,则对全部文件操作。
以上命令涉及和Git仓库对比的,均可指定 commit 的版本。
HEAD 最近一次 commit
HEAD^ 上次提交
HEAD~100 上100次提交