首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Git的diff输出中,“@-1+1”意味着什么?

在Git的diff输出中,“@-1+1”意味着什么?
EN

Stack Overflow用户
提问于 2018-03-29 06:42:03
回答 2查看 0关注 0票数 0

我从从

代码语言:txt
复制
git diff <commitId>..<commitId>

我遇到了@@ -1 +1 @@

我搞不懂这是怎么回事。

EN

回答 2

Stack Overflow用户

发布于 2018-03-29 14:53:39

它是一个统一的diff块标识符。

  • +在第一个文件中添加了一行。
  • -这里从第一个文件中删除了一行。
票数 0
EN

Stack Overflow用户

发布于 2018-03-29 15:47:08

简单实例分析

格式基本相同diff -u统一的差别。

例如:

代码语言:txt
复制
diff -u <(seq -w 16) <(seq -w 16 | grep -Ev '^(02|03|14|15)$')

这里我们删除了第2、3、14和15行:

代码语言:txt
复制
@@ -1,6 +1,4 @@
 01
-02
-03
 04
 05
 06
@@ -11,6 +9,4 @@
 11
 12
 13
-14
-15
 16

@@ -1,6 +1,4 @@指:

  • -1,6*这一段对应于第一个文件的第1至第6行: 01 02 03 04 05 06-意思是“老”,因为我们通常把它作为diff -u old new
  • +1,4说这个片段对应于第二个文件的第1行到第4行。+意思是“新”。 我们只有4行,而不是6行,因为2行被删除了!新来的家伙是: 01 04 05 06

@@ -11,6 +9,4 @@对于第二个大块头来说,它类似于:

  • 在旧文件中,我们有6行,从旧文件的第11行开始: 11 12 13 14 15 16
  • 在新文件中,我们有4行,从新文件的第9行开始: 11 12 13 16 注意这一行11是新文件的第9行,因为我们已经删除了前面的文件中的2行:2和3。

根据git版本和配置,还可以在@@线,例如func1() {在:

代码语言:txt
复制
@@ -4,7 +4,6 @@ func1() {

这也可以通过-p diff

示例:旧文件:

代码语言:txt
复制
func1() {
    1;
    2;
    3;
    4;
    5;
    6;
    7;
    8;
    9;
}

如果我们移除线6,差异显示:

代码语言:txt
复制
@@ -4,7 +4,6 @@ func1() {
     3;
     4;
     5;
-    6;
     7;
     8;
     9;

请注意,这不是正确的行func1*它跳过了行12

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档