执行 git diff <filename> 后会显示差异(filename为空则会显示所有文件的差异):

此命令比较的是工作目录中当前文件和暂存区域快照之间的差异。 也就是修改之后还没有暂存起来的变化内容。

—staged / —cached

git diff --staged 或者 git diff --cache 可以只比较已暂存文件与最后一次提交的文件的差异,也即本次提交要提交的内容: 这个文件是新添加的文件,并且在创建空文件并写入一行文本后才添加的。

因此,如果你在工作区修改完后就使用 git add 将其加入暂存区,则再执行 git diff 去查看自己相比于上次提交修改了哪些内容是不可行的,要显示暂存区和上次提交时的差异要用 --staged 或者 --cached ,这两个单词是同义词。

可以使用 git difftool 命令来调用 emerge 或 vimdiff 等软件(包括商业软件)输出 diff 的分析结果。 使用 git difftool --tool-help 命令来看你的系统支持哪些 Git Diff 插件。