0


git diff 输出内容分析(超详细案例)

不加参数直接输入

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后添加了这一行

美美美
标签: git

本文转载自: https://blog.csdn.net/a2268850905/article/details/143168963
版权归原作者 望青空 所有, 如有侵权,请联系我们删除。

“git diff 输出内容分析(超详细案例)”的评论:

还没有评论