为什么git rev-parse --short使用非默认长度?

时间:2017-05-31 13:57:38

标签: git

在存储库A上运行git rev-parse --short HEAD时,我得到长度为7的哈希输出,因为它是git documentation--short选项的默认长度。

在存储库B中运行相同的命令时,我得到一个长度为9的哈希输出。什么可以基于每个存储库覆盖--short选项的默认长度?

1 个答案:

答案 0 :(得分:5)

看起来文档已经过时了。这可能是由于以下两个原因之一而发生的:

  1. 存储库B中存在长度为8的重复哈希。git rev-parse --short将尝试返回唯一的哈希字符串。这似乎不太可能,但理论上可行。
  2. OR

    1. 此仓库中有很多打包对象,而git rev-parse --short实际上会给出一个不小于7的数字,但由于仓库中的打包对象数量可能会更高。
    2. https://git-scm.com/docs/git-config#git-config-coreabbrev

        

      设置长度对象名称缩写为。如果未指定或设置为" auto",则会根据存储库中打包对象的近似数量计算适当的值,这有望使缩写对象名称在一段时间内保持唯一。

      所以官方文档已过时,--short选项并不会强制长度为7,即使我没有覆盖长度(我也没有)。 )

相关问题