Git:差异/合并输出中+/-符号的数量是什么意思?

m_x*_*m_x 37 git diff

可能重复:
Git Merge:这是什么意思?
Git diff --stat解释

抱歉这个愚蠢的问题,但我无法在任何地方找到明确的答案.

当你在git中合并两个分支时,你得到一个这样的输出:

 some_file.txt  |  564 ++++++++++++++--
Run Code Online (Sandbox Code Playgroud)

我认为已了解 +-意味着添加和删除,但是:

  • 什么迹象的数量代表什么? 当你几乎没有变化时,每个标志似乎代表一条线,但是当你有更多的标志时,我无法得到代表的逻辑

  • 是某种变化的百分比?我的猜测是,符号的数量代表相对的变化量 - 但相对于什么?当前档案?整个合并?

  • 怎么计算?是否有任何官方关于这个源?我现在对此最准确的答案是"这种表现形式不是很精确"......我只是好奇

Ofi*_*chy 28

它应该反映列出的每个文件的更改次数(以行为单位).
添加的标志,删除的减少.

编辑:
564给出了改变线的量,-/+为您提供了删除/添加的比例.
如果更改量适合一行,您将在每次添加时获得" + ",每次删除都会显示" - ";
否则,这是近似值,例如

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

CHANGES.txt因为你可以看到有没有" - ",并自47" + "很多,你让他们(即100%)的比例的量.
make-release.py你看到x39 ' + '代表55个加法和x16 ' - '代表22个删除.
正如他们的比例,只是适合输出屏幕的数量.

希望有所帮助.

  • 好的,这就是我假设的,但是如何计算线的长度?在我的 564 处更改中,我只得到一堆 +-,而在 77 处得到更多。我的猜测是行长与整个提交的更改比例有关,但我想肯定知道 (2认同)
  • 这听起来很有道理,我不能肯定地告诉你。根据经验(在相当多的存储库上测试),这 ** 与其他文件的更改大小成正比。据我了解,这是某种“GCD”倍数。 (2认同)