解释git-diff输出

解释git-diff输出,git,diff,Git,Diff,我已经使用git很多年了,但是从来没有使用过diff命令,我今天开始使用它,但是我真的不理解它的输出。。。我有一个文件,删除了第3行和第4行,得到了以下输出,但是有人能帮助我理解输出行在虚拟术语中的含义吗。谢谢 $ git diff diff --git a/README.txt b/README.txt index 15827f4..8115e72 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,2 @@ this file addi

我已经使用git很多年了,但是从来没有使用过diff命令,我今天开始使用它,但是我真的不理解它的输出。。。我有一个文件,删除了第3行和第4行,得到了以下输出,但是有人能帮助我理解输出行在虚拟术语中的含义吗。谢谢

$ git diff
diff --git a/README.txt b/README.txt
index 15827f4..8115e72 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,2 @@
 this file
 adding like
-line 3
-

第1行:用于生成差异的命令

第2行:
git
涉及的两个文件的数据库信息

第3行和第4行:
--
表示旧文件,
++
表示新文件

第5行:
@
表示下一个diff hunk中表示的行范围<代码>-1,4表示旧文件中的第1-4行,
+1,2
表示新文件中的第1-2行

其余的行是原始文件中的行,前缀为
(空格)、
-
+
<代码>行既有旧的也有新的,
-
只有旧的,
+
只有新的


这些都是为了便于记忆:
-
是“删除的行”
是“未更改的行”
+
是“添加的行”

这只是统一的差异格式

这是生成此输出的命令行,仅用于检查任何特殊标志:

diff --git a/README.txt b/README.txt
这是索引的哈希值和文件的unix权限(
0644

index 15827f4..8115e72 100644
这几行告诉您将要看到的
-
+
是指哪个文件:

--- a/README.txt
+++ b/README.txt
这里没有那么有用,但是如果您将
diff
应用于不同的文件名(请记住这是一种通用格式),它可能会有用

遵循上下文,也就是说差异引用到哪些行(对于文件
-
,行
1
,列
4
;对于文件
+
,行
1
2
):

上下文还可能包括更改所在函数的名称,这样即使您进一步修改了文件,
diff
也可以工作,只要可以找到应用更改的点

最后,这是变更集:

 this file
 adding like
-line 3
-

这意味着您已经删除了这两行,因为它们位于
-
(旧)文件中,而不在新文件中(没有
+
行)。

将有助于解释“旧文件”和“新文件”的含义。大多数示例甚至git输出都使用这些“a/xxx”和“b/xxx”,如果/当您的git命令类似于“git diff master origin/master”,而看不到“a或b”,这会让人感到困惑。
 this file
 adding like
-line 3
-