我每次运行git的差异,因为我做每一个变化,我得到某种头顶球的数字,例如:Git Diff标题上的数字是什么意思?
@@ -169,14 +167,12 @@ function Browser(window, document, body, XHR, $log) {.....
我不知道是什么的四个数字是什么意思?我想-169意味着这个特定的代码行最初是在169行,但现在在167? 14和12是什么意思?
我每次运行git的差异,因为我做每一个变化,我得到某种头顶球的数字,例如:Git Diff标题上的数字是什么意思?
@@ -169,14 +167,12 @@ function Browser(window, document, body, XHR, $log) {.....
我不知道是什么的四个数字是什么意思?我想-169意味着这个特定的代码行最初是在169行,但现在在167? 14和12是什么意思?
这标头被称为一组变化,或大块。每个块都以一行包含在@@中的行开头,该行包含文件之前(有-
)和之后(有+
)的文件中的行或行范围from,no-of-lines
。之后来自文件的行。以-
开头的行被删除,添加以+
开头的行。由修补程序修改的每行都由3行上下文环境包围。
加法看起来像这样:
@@ -75,6 +103,8 @@
foo
bar
baz
+line1
+line2
more context
and more
and still context
这意味着,在管线78之前的原始文件(= 75个+ 3行上下文)添加两行。在所有变化之后,这些将是行106(= 103 + 3行上下文)到107。
请注意from
数字(-75 vs +103)的差异,这意味着在此特定大块之前还有其他更改,即添加了28(103-75)行代码。
缺失看起来像这样:
@@ -75,7 +75,6 @@
foo
bar
baz
-line1
more context
and more
and still context
也就是说,删除线78(= 75个+ 3行的上下文)中的原始文件。在所有改变之后,未改变的上下文将在第75至80行。
请注意,from
这个块中的数字相等(-75和+75),这意味着要么在这个块之前没有变化,要么在以前的变化中添加和删除的行的数量是相同的。
最后,一个变化看起来像这样:
@@ -70,7 +70,7 @@
foo
bar
baz
-red
+blue
more context
and more
still context
这意味着,改变线73(= 70个+ 3行上下文的)文件中的所有的变化,其包含红色到蓝色之前。更改后的行也是全部更改后的文件中的第73行(= 70 + 3行上下文)。
总结:
git diff
将输出[0-3]线[前/后] [第一/最后]改变@@ - [original file's number of first line displayed
],[context lines + removed lines
] + [changed file's number of first line displayed
],[] @@
我不知道是什么的四个数字是什么意思?
我们来分析一个简单的例子
格式基本相同diff -u
统一差异。
我们先从号码从1到16和除去2,3,14和15:
diff -u <(seq 16) <(seq 16 | grep -Ev '^(2|3|14|15)$')
输出:
@@ -1,6 +1,4 @@
1
-2
-3
4
5
6
@@ -11,6 +9,4 @@
11
12
13
-14
-15
16
@@ -1,6 +1,4 @@
指:
-1,6
:这一段对应于第一个文件的第1行至第6行:
1
2
3
4
5
6
-
的意思是“老”,因为我们通常将其称为diff -u old new
。
+1,4
说这件作品对应于第二个文件的第1行到第4行。
+
表示“新”。
我们只有4行而不是6,因为2行被删除!新的大块就是:
1
4
5
6
@@ -11,6 +9,4 @@
第二大块是类似的:
上的旧文件,我们有6条线路,起始于旧文件的第11行:
11
12
13
14
15
16
在新文件中,我们有4条线,开始在新的文件的第9行:
11
12
13
16
注意该行11
是新文件的第9行,因为我们已经删除2行上一大块:2和3
简短的回答:你的情况,14量在应用这些变化之前,在大块的线路上,12 - 之后。 –
“无线”值可能不会立即显而易见。 'before'值是3个前导上下文行的总和,'-'行数和3个尾随上下文行的总和,而'after'值是3个前导上下文行的总和,'+ '线和3条尾线。在某些情况下,还有额外的中间上下文行也被添加到这些数字中。所以显示的总行数通常不是“无行”值! –
在第一个添加2行的示例中有一条红色鲱鱼:'@@ -75,6 +77,8 @@'。 75和77可能会混淆新手,认为这与添加2行有关。其实,一个简单的例子就是'@@ -75,6 +75,8 @@'。 +77只会在其他编辑更高的情况下增加2行。 – wisbucky