我正在编写一个基于 的自动工具git show
,它依赖于git diff
命令。我编写了一个小型解析器,它将 git show 的输出作为要解析的文本,在大多数情况下,结果中的行以“@@”开头表示它将比较哪些行。
但是,我遇到了这样的情况:
@@@ -460,22 -415,8 +460,22 @@@
这意味着什么?是否有可能会有更多(4 个或更多)具有更微妙含义的“@”符号?
您正在显示合并差异格式的合并。如果您查看 的手册页git show
,它有一个完整的部分关于combined diff format
、何时使用以及它的外观。同样在它的初始描述中git show
说合并将显示git diff-tree --cc
为也指组合的差异格式。
是的,可以有三个以上的@
符号。每个父提交 + 1 个。因此,如果您与三个父提交合并(所谓的 octupus 合并),则将有四个 at 标志。如果您有四个父母,则将有五个 at 标志,依此类推。
在我看来,你正在做一场合并表演,而这个大块头与父母双方都不同;这可能是解释吗?