git 差异:许多带有三个“@”符号的补丁
git diff: many patches with three '@' symbol
我正在编写一个基于 git show
的自动工具,它依赖于 git diff
命令。我编写了一个小型解析器,它将 git show 的输出作为要解析的文本,在大多数情况下,结果中以“@@”开头的行表示它将比较哪些行。
但是,我遇到了这样的情况:
@@@ -460,22 -415,8 +460,22 @@@
这是什么意思?是否有可能会有更多(4 个或更多)'@' 符号具有更微妙的含义?
在我看来你是在做一个合并的节目,而且这个大块头不同于两个parents;可以这样解释吗?
您正在显示合并差异格式的合并。如果您查看 git show
的 man-page,它有完整的部分介绍 combined diff format
、何时使用以及它的外观。同样在 git show
的初始描述中,它说合并将显示为 git diff-tree --cc
,这也指的是组合差异格式。
是的,可以有三个以上的 @
符号。每个 parent commit + 1 会有一个。所以如果你有一个包含三个 parents 的合并(一个 so-called octupus 合并),将会有四个 at 标志。如果你有四个parent,那么就会有五个at符号等等。
我正在编写一个基于 git show
的自动工具,它依赖于 git diff
命令。我编写了一个小型解析器,它将 git show 的输出作为要解析的文本,在大多数情况下,结果中以“@@”开头的行表示它将比较哪些行。
但是,我遇到了这样的情况:
@@@ -460,22 -415,8 +460,22 @@@
这是什么意思?是否有可能会有更多(4 个或更多)'@' 符号具有更微妙的含义?
在我看来你是在做一个合并的节目,而且这个大块头不同于两个parents;可以这样解释吗?
您正在显示合并差异格式的合并。如果您查看 git show
的 man-page,它有完整的部分介绍 combined diff format
、何时使用以及它的外观。同样在 git show
的初始描述中,它说合并将显示为 git diff-tree --cc
,这也指的是组合差异格式。
是的,可以有三个以上的 @
符号。每个 parent commit + 1 会有一个。所以如果你有一个包含三个 parents 的合并(一个 so-called octupus 合并),将会有四个 at 标志。如果你有四个parent,那么就会有五个at符号等等。