首页 > 编程笔记

git diff命令:查看更改前后的差别

git diff 命令可以查看工作树、暂存区、最新提交之间的差别。单从字面上可能很难理解,不妨跟着笔者的解说亲手试一试。

我们在刚刚提交的 README.md 中写点东西。
# Git教程
这里用 Markdown 语法写下了一行题目。

查看工作树和暂存区的差别

执行 git diff命令,查看当前工作树与暂存区的差别。
$ git diff
diff ——git a/README.md b/README.md
index e69de29..cb5dc9f 100644
—— a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+# Git教程
由于我们尚未用 git add 命令向暂存区添加任何东西,所以程序只会显示工作树与最新提交状态之间的差别。

这里解释一下显示的内容。“+”号标出的是新添加的行,被删除的行则用“-”号标出。我们可以看到,这次只添加了一行。

用 git add 命令将 README.md 文件加入暂存区。
$ git add README.md

查看工作树和最新提交的差别

如果现在执行 git diff 命令,由于工作树和暂存区的状态并无差别,结果什么都不会显示。要查看与最新提交的差别,请执行以下命令。
$ git diff HEAD
diff ——git a/README.md b/README.md
index e69de29..cb5dc9f 100644
—— a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+# Git教程
不妨养成这样一个好习惯:在执行 git commit 命令之前先执行 git diff HEAD 命令,查看本次提交与上次提交之间有什么差别,等确认完毕后再进行提交。这里的 HEAD 是指向当前分支中最新一次提交的指针。

由于我们刚刚确认过两个提交之间的差别,所以直接运行 git commit 命令。
$ git commit -m "Add index"
[master fd0cbf0] Add index
1 file changed, 1 insertion(+)
保险起见,我们查看一下提交日志,确认提交是否成功。
$ git log
commit fd0cbf0d4a25f747230694d95cac1be72d33441d
Author:hirocaster <hohtsuka@gmail.com>
Date: Sun May 5 16:10:15 2013 +0900
Add index
commit 9f129bae19b2c82fb4e98cde5890e52a6c546922
Author:hirocaster <hohtsuka@gmail.com>
Date: Sun May 5 16:06:49 2013 +0900
First commit
成功查到了第二个提交。

推荐阅读