git diff 命令用于比较 git 工作区、暂存区和版本库中文件内容的差异。
git diff 不加参数,默认比较工作区与暂存区的所有文件的差异。
git diff
查看文件 filename 在工作目录与暂存区的差异。若是还没 add 进暂存区,则查看文件自身修改先后的差异。
git diff <filename>
查看已经 add 进暂存区可是还没有 commit 的内容同最近一次 commit 时的内容的差异。
git diff --cached <filename>
也能够指定仓库版本:
> git diff --cached <commit> <filename>
查看工做目录同Git仓库指定 commit 的内容的差异。
git diff <commit> <filename>
<commit>=HEAD 时:查看工做目录同最近一次 commit 的内容的差异。
查看 Git 仓库任意两次 commit 之间的差异。
git diff <commit> <commit>
以上命令能够不指定 <filename>,则对所有文件操做。 以上命令涉及和 Git仓库 对比的,都可指定 commit 的版本。
使用 git diff 命令,会产生 diff 格式的输出。例如:
@@ -6,16 +6,16 @@ <id> - <column name="id" /> + <column name="ID" /> <generator class="identity" /> </id> <property> - <column name="code" /> + <column name="CODE" /> </property> <property> - <column name="name" /> + <column name="NAME" /> </property>
以上是 git diff 命令产生的比较的结果,分析如下:
- 表明修改前的文件,+ 表明修改后的文件。
@@ 后面的 第一个 6,16 指的是下边列出的内容是修改前的文件从第 6 行开始,连续 16 行。第二个 6,16 只的是下边的内容是修改后的文件从第 6 行开始,连续 16 行。