git diff 命令 输出解读

# 数据准备
$ 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后面两个字符串表示两个文件的hash值,最后的数字是文件的权限和属性(?);
第三四行:---代表源文件,+++代表目标文件;
第五行:差异小结,@@ -1,2 +1,3 @@ ,分为两个部分,第一个是-1,2,-表示源文件,1,2表示从第一行开始的两行,后面的+1,3,则表示目标文件的第一行开始的三行内容。差异小结可能会有多个。

剩下的行都是具体的差异信息,其中以空格开头的行代表源文件与目标文件没有差异,以-开头 的行代表在源文件的基础上删除,以+开头代表在源文件基础上添加;

你可能感兴趣的:(git diff 命令 输出解读)