答案1
它们是旧/新文件的行号,以帮助patch
(或类似)程序解码统一差异。
- 逗号后面的数字是块的长度(在旧文件或新文件中),并且
- 逗号前的数字是块开始的行号。
+
和符号-
分别表示添加和删除行。
在您的示例中,该行
@@ -1,4 +1,5 @@
使用-
和+
符号作为类比中使用的<
和符号>
正常差异左/右文件的输出。这两种格式都试图交错差异线。 (上下文差异显示前后块,而不是交错)。
Unified diff是程序的一种特殊格式diff
;其他广泛支持的格式在差异输出格式部分。
进一步阅读:
答案2
这GNUdiff
文档在有关的部分中解释了这一点统一格式:
接下来是一个或多个差异;每个块都显示文件不同的一个区域。统一格式的帅哥看起来像这样:
@@ from-file-line-numbers to-file-line-numbers @@ line-from-either-file line-from-either-file...
如果块仅包含一行,则仅显示其起始行号。否则它的行号看起来像“开始,计数”。空块被认为是从块后面的线开始。
如果一个块及其上下文包含两行或更多行,则其行号看起来像“start,count”。否则仅显示其结束行号。空块被认为在该块之前的行处结束。
两个文件共有的行以空格字符开头。两个文件之间实际不同的行在左侧打印列中具有以下指示符之一:
‘+’ A line was added here to the first file. ‘-’ A line was removed here from the first file.