git diff打印两个文件的不同之处该怎么看呢?

使用git diff之后,输出如下,但是这个该怎么看呢?

$ git diff readme.txt
diff --cc readme.txt
index 3698898,fa43b41..0000000
--- a/readme.txt
+++ b/readme.txt
@@@ -1,3 -1,1 +1,6 @@@
  this is a intruduce
++<<<<<<< HEAD
 +hello world
 +new world
++=======
++>>>>>>> origin/master
阅读 5.9k
2 个回答
--- a/readme.txt
+++ b/readme.txt

这个意思就是,你的 readme.txt 文件有改动。

======= 是分割线
分割线以上到 <<<<<<< HEAD 有两行,表示你本地的 HEAD 里面加了两行内容
分割线以下到 >>>>>>> origin/master 没有内容,表示 origin remote 的 master branch 这个位置是空的

首先,我想知道你的git的版本,建议检查更新。因为,我发现你的git diff命令的输出格式和通常的稍有不同,很可能是git版本不同导致的。

下面是一个通常的git diff的输出结果:

$ git diff README.md
diff --git a/README.md b/README.md
index d29ab50..7e42b29 100644
--- a/README.md
+++ b/README.md
@@ -37,3 +37,4 @@
 You can get it using command `hostname` in your remote robot:
 $ hostname
+Enjoy it!

第一部分表示为你使用的git格式的diff:

diff --git a/README.md b/README.md

第二部分表示两个版本的git哈希值(index区域的d29ab50对象,与工作目录区域的7e42b29对象进行比较),最后的六位数字是对象的模式(普通文件,644权限)。

index d29ab50..7e42b29 100644

第三部分表示进行比较的两个文件:

--- a/README.md
+++ b/README.md

"---"表示变动前的版本,"+++"表示变动后的版本。

第四部分表示变动的位置,用两个@作为起首和结束:

@@ -37,3 +37,4 @@

前面的"-37,3"分成三个部分:减号表示第一个文件(即index区域的d29ab50对象),"37"表示第37行,"3"表示连续3行。合在一起,就表示下面是第一个文件从第37行开始的连续3行。同样的,"+37,4"表示变动后,成为第二个文件从第37行开始的连续4行。

最后一部分是具体的差异部分:

You can get it using command `hostname` in your remote robot:
 $ hostname
+Enjoy it!

你可以对照着理解一下,虽然有些不同。

在你的输出结果中,第四部分@@@ -1,3 -1,1 +1,6 @@@有点儿令人费解。最后一部分,你可以按照一楼所说的那样理解:

======= 是分割线
分割线以上到 <<<<<<< HEAD 有两行,表示你本地的 HEAD 里面加了两行内容
分割线以下到 >>>>>>> origin/master 没有内容,表示 origin remote 的 master branch 这个位置是空的

推荐问题
logo
Microsoft
子站问答
访问
宣传栏