git diff 命令

Git 基本操作Git 基本操作

git diff 命令用于比较 git 工作区、暂存区和版本库中文件内容的差异。

1. 查看工作区与暂存区的差异

git diff 不加参数,默认比较工作区与暂存区的所有文件的差异。

git diff

查看文件 filename 在工作目录与暂存区的差异。若是还没 add 进暂存区,则查看文件自身修改先后的差异。

git diff <filename>

2. 查看暂存区与 Git 仓库的差异

查看已经 add 进暂存区可是还没有 commit 的内容同最近一次 commit 时的内容的差异。

git diff --cached <filename>

也能够指定仓库版本:

> git diff --cached <commit> <filename>

3. 查看工做目录与 Git 仓库的差异

查看工做目录同Git仓库指定 commit 的内容的差异。

git diff <commit> <filename>

<commit>=HEAD 时:查看工做目录同最近一次 commit 的内容的差异。

4. 查看 Git 仓库与 Git 仓库的差异

查看 Git 仓库任意两次 commit 之间的差异。

git diff <commit> <commit>

5. 常用约定和参数

以上命令能够不指定 <filename>,则对所有文件操做。 以上命令涉及和 Git仓库 对比的,都可指定 commit 的版本。

  • HEAD 表示最近一次 commit
  • HEAD^ 表示上次提交
  • HEAD~100 表示上100次提交

6. diff 文件的解释

使用 git diff 命令,会产生 diff 格式的输出。例如:

@@ -6,16 +6,16 @@
         
-            
+            
             
         
 
         
-            
+            
         
 
         
-            
+            
         

以上是 git diff 命令产生的比较的结果,分析如下:

- 表明修改前的文件,+ 表明修改后的文件。

@@ 后面的 第一个 6,16 指的是下边列出的内容是修改前的文件从第 6 行开始,连续 16 行。第二个 6,16 只的是下边的内容是修改后的文件从第 6 行开始,连续 16 行。

Git 基本操作Git 基本操作

下一章:git commit 命令

git commit 命令将暂存区内容添加到本地仓库中。git commit 命令的语:提交暂存区的所有内容到本地本地仓库:git commit -m [message]。其中 [message] 可以是一些备注信息。提交暂存区的指定文件到本地仓库:git commit [file1] [file2] ... -m [message]。