# 数据准备
$ vi rainbow.txt
$ cat rainbow.txt
This is my rainbow.
Everybody has his own rainbow.
$ git add rainbow.txt
$ vi rainbow.txt
$ cat rainbow.txt
This is my rainbow.
Everybody has his own rainbow.
okay,It is your rainbow now.
# 查看工作区和暂存区当前文件的区别
$ git diff
diff --git a/rainbow.txt b/rainbow.txt
index c8686ac..5daa196 100644
--- a/rainbow.txt
+++ b/rainbow.txt
@@ -1,2 +1,3 @@
This is my rainbow.
Everybody has his own rainbow.
+okay,It is your rainbow now.
第一行:diff --git a/rainbow.txt b/rainbow.txt
,git diff
实质上用的是diff的文本比较工具,其中a/diff.txt
代表源文件,也就是修改前的文件, b/diff.txt
代表比目标文件,也就是修改后的文件;
第二行:index c8686ac..5daa196 100644
, index后面两个z字符串表示两个文件的hash值,最后的数字是文件的权限和属性(?);
第三四行:---代表源文件,+++代表目标文件;
第五行:差异小结,@@ -1,2 +1,3 @@
,分为两个部分,第一个是-1,2,-表示源文件,1,2表示从第一行开始的两行,后面的+1,3,则表示目标文件的第一行开始的三行内容。差异小结可能会有多个。
剩下的行都是具体的差异信息,其中以空格开头的行代表源文件与目标文件没有差异,以-开头 的行代表在源文件的基础上删除,以+开头代表在源文件基础上添加;