该--abbrev-commit
标志可以与提交对象结合使用git log
,git rev-list
以显示部分前缀而不是完整的 40 个字符的 SHA-1 哈希。根据Pro Git 书,
它默认使用七个字符,但如果需要使它们更长,以保持 SHA-1 明确 [...]
此外,短 SHA 至少有 4 个字符长。仍然根据 Pro Git 书,
通常,八到十个字符足以在一个项目中保持唯一性。
例如,Linux 内核是一个相当大的项目,有超过 450k 的提交和 360 万个对象,没有两个对象的 SHA-1 重叠超过前 11 个字符。
由于防止提交对象的所有前缀哈希之间的任何重叠所需的最长前缀的长度(在 Linux 内核的情况下为 11)是 repo 大小的粗略指标,我想以编程方式确定相应的数量我自己的本地存储库。我怎样才能做到这一点?