【问题标题】:Interpreting git diff output [duplicate]解释 git diff 输出
【发布时间】:2015-02-15 00:30:16
【问题描述】:

我多年来一直使用 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
-

【问题讨论】:

标签: git diff


【解决方案1】:

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

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

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

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

其余行是原始文件中的行,前缀为(空格)、-+ 新旧行都有,- 仅在旧行中,+ 仅在新行中。

这些是为了助记:- 是“删除的行”, 是“未更改的行”,+ 是“添加的行”。

【讨论】:

  • 有助于解释“旧文件”和“新文件”的含义。大多数示例甚至 git 输出都使用这些 'a/xxx' 和 'b/xxx' 如果/当您的 git 命令类似于 'git diff master origin/master' 而没有 'a 或 b' 时,这有点令人困惑视线。
【解决方案2】:

这只是统一的差异格式。

这是产生此输出的命令行,只是为了检查任何特殊标志:

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

这是索引的哈希和文件的unix权限(0644

index 15827f4..8115e72 100644

这行告诉您将看到的-+ 被引用到哪个文件:

--- a/README.txt
+++ b/README.txt

这里没有那么有用,但是如果您将diff 应用于不同的文件名(仍然记住这是一种通用格式),它可能是。

遵循上下文,即差异引用到哪些行(对于文件-,行1,列4;对于文件+,行12) :

@@ -1,4 +1,2 @@

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

最后,这是变更集:

 this file
 adding like
-line 3
-

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2019-03-14
    • 2022-07-22
    • 2014-05-24
    • 1970-01-01
    相关资源
    最近更新 更多