Git:diff / merge 输出中的+/-符号数量是什么意思?

55

可能是重复问题:
Git合并:这是什么意思?
Git diff --stat解释

很抱歉问一个愚蠢的问题,但我在任何地方都找不到清晰的答案。

当你在git中合并两个分支时,你会得到以下输出:

 some_file.txt  |  564 ++++++++++++++--

我了解到+-表示添加和删除,但是:

  • 那么这些符号的数量代表什么? 当您有少量更改时,每个符号似乎代表一行,但当您有更多符号时,我无法理解其表示逻辑。

  • 这是否代表变更的某种百分比? 我猜这些符号的数量代表相对于什么的变化量——当前文件?整个合并?

  • 这是如何计算的? 是否有任何关于此的官方来源?到目前为止,我得到的最准确的答案是“此表示不太精确”……我只是好奇


2
https://dev59.com/LG445IYBdhLWcg3wQX6G - Geert
2
@GeertJaminon 我不会关闭这个问题,因为它明确关注了++++--的混合使用,而这在建议的重复问题中并没有得到回答。 - eckes
1
@eckes 我没有看到这个问题中包含任何关于 ++++-- 混合的内容。 - Geert
为了更清晰明确,我修改了我的问题。 - m_x
2
我已经尝试过搜索。我得到的最正式的答案是它是删除/添加/修改的“直方图”。 - mgarciaisaia
显示剩余3条评论
1个回答

39

它应该反映每个列出的文件中更改(行数)。
加号表示添加,减号表示删除。

编辑:
564表示更改行数,- / +表示删除/添加比例。
当更改量适合一行时,每个添加将显示'+',每个删除将显示'-';
否则,这是一个近似值,例如:

CHANGES.txt     |   47 +++++++++++++++++++++++++++++++++
make-release.py |   77 +++++++++++++++++++++++++++++++++++++++----------------
2 files changed, 102 insertions(+), 22 deletions(-)

CHANGES.txt中你可以看到没有'-',而且由于 47 个 '+' 很多,所以它们的比例是相当的(即:100%)。
make-release.py中,你会看到x39个 '+'代表55个添加和x16个 '-'代表22个删除。
与它们的比例恰好相同,只有一个适合输出屏幕的数量。

希望这有所帮助。


3
好的,这是我推测的,但是这条线的长度是如何计算的?在我的 564 次更改中,我只得到一堆+-符号,而你在 77 次更改中得到了更多的符号。我猜测这条线的长度与更改在整个提交中所占比例有关,但我想确切知道。 - m_x
2
听起来很合理,但我不能确定。根据经验(在许多代码库上进行了测试),这与其他文件的变更大小成比例。据我理解,这是一种“GCD”倍数。 - Ofir Farchy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接