不加参数直接输入
git diff
。比较的是工作目录中当前文件和暂存区域快照之间的差异。 也就是修改之后还没有暂存起来的变化内容。
- 例如你暂存过文件
hello.txt
一次,还没提交,继续在工作区域修改,则会比较工作区的和暂存文件的内容。
输出分析
在工作目录创建hello.txt文件 并写入如下内容,和添加到暂存区。暂存区的该文件内容就如下
此时修改文件内容并保存,如下就是暂存后工作目录修改后的hello.txt文件内容,可以看出,第7行将暂存区的文件版本ggg去掉,并改成张张张,第9行iii去掉并改成集集集,在暂存区第10行的jjj后添加了一行美美美。这是两个文件间的差异
输入git diff查看输出内容
diff --git a/hello.txt b/hello.txt
第一行表示 a 版本(暂存区的文件)的 hello.txt(变动前) 与 b 版本的 hello.txt(变动后) (工作区暂存后继续修改后的文件)的比较
index 222a1e0..e62ba8e 100644
第二行 index 后面两个数字表示两个文件的 hash 值(index 区域的
222a1e0
对象,与工作目录区域的
e62ba8e
对象进行比较)。最后的六位数字是对象的模式(100代表普通文件,644代表权限):
---a/hello.txt +++ b/hello.txt
这两行表示 a是暂存区的版本 修改前, b是暂存后继续修改的版本(工作目录的)。用-表示a版本 用+表示 b版本。
@@ -4,10 +4,11 @@
表示差异小结 用
@@
开头
@@
结尾
-4,10
表示如下显示a版本第四行开始的10行内容。
+4,11
显示b版本第4行开始的11行内容。
剩余的部分就是文件内容了,这是两个文件版本的合并显示,每一行的开头加入-号说明是a版本有的,b版本没有,即暂存后被删除的内容。每一行的开头加入+号说明是b版本有的,a版本没有,即暂存后添加的内容。
那为什么是
-4,10 +4,11
。两个版本的文件都是第四行ddd开始的。因此从ddd开始显示文件差异。不看有+号的输出,总共有10行内容,这就是a版本,即暂存版本的内容。不看有-号的输出,总共有11行内容,这就是b版本,即暂存后修改的的文件内容。
既没有+ 号也没有-号的开头的行是两个版本共有的,单看某个版本的内容顺序都是正确的,所以才说是合并显示。合并显示有什么用呢?:
-ggg +张张张
表明了b版本相较于a版本在这里删除了ggg,添加了张张张。+美美美是单独的,说明在a文件的jjj后添加了这一行
美美美
版权归原作者 望青空 所有, 如有侵权,请联系我们删除。