首先来了解Git的三个区域
- working directory
- staging area
- git directory(repository)
如图
我新建了一个git_diff文件,在其中添加了一句话:Add a new sentence.添加(add)并提交(commit)到版本库(repository).
紧接着添加了一句话:Add another sentence. 只进行了添加(add)操作,没有提交
最后添加了一句话:Add the last sentence.没有进行任何操作,我们来看用不同命令进行比较的结果:
andy@andy-PC:~/Projects/Git/Git$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: git_diff
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: git_diff
andy@andy-PC:~/Projects/Git/Git$ git diff git_diff
diff --git a/git_diff b/git_diff
index 43ca7ef..d9c2bf0 100644
--- a/git_diff
+++ b/git_diff
@@ -1,3 +1,4 @@
To understand how to use diff in git.
Add a new sentence.
Add a another sentence.
+Add the last sentence.
andy@andy-PC:~/Projects/Git/Git$ git diff --cached git_diff
diff --git a/git_diff b/git_diff
index 38aa546..43ca7ef 100644
--- a/git_diff
+++ b/git_diff
@@ -1,2 +1,3 @@
To understand how to use diff in git.
Add a new sentence.
+Add a another sentence.
andy@andy-PC:~/Projects/Git/Git$ git diff HEAD git_diff
diff --git a/git_diff b/git_diff
index 38aa546..d9c2bf0 100644
--- a/git_diff
+++ b/git_diff
@@ -1,2 +1,4 @@
To understand how to use diff in git.
Add a new sentence.
+Add a another sentence.
+Add the last sentence.
怎么样,是不是一目了然了呢,正如你所看见的:
git diff 比较的是working directory 与 staging area的不同
git diff –cached 比较的是staging area 与 git directory(repository)的不同
git diff HEAD 比较的是working directory 与 git directory(repository) 的不同
(小小白原创,欢迎指正交流,不喜勿喷)