Git如何创建唯一的提交哈希,主要是前几个字符?

Git如何创建唯一的提交哈希,主要是前几个字符?,第1张

Git如何创建唯一的提交哈希,主要是前几个字符

Git使用以下信息来生成sha-1:

  • 提交的源树(展开到所有子树和blob)
  • 父提交sha1
  • 作者信息(带时间戳)
  • 提交者信息(正确的,那些是不同的!,还有时间戳)
  • 提交消息

(有关完整说明,请参见此处)。

Git 保证前四个字符是唯一的。在Pro Git书的第7章中写道:

Git可以为您的SHA-1值找出一个简短的唯一缩写。如果将–abbrev-commit传递给git
log命令,则输出将使用较短的值,但保持它们唯一。它默认使用七个字符,但在必要时将它们延长以保持SHA-1的明确:

因此 ,只要 保持唯一性,Git都会 尽可能地 缩写。他们甚至注意到:

通常,八个到十个字符足以在一个项目中唯一。

例如,Linux内核是一个相当大的项目,具有超过450k的提交和360万个对象,没有两个对象的SHA-1重叠超过前11个字符。

因此,实际上,它们仅取决于具有完全相同的(a的X个首字符)sha 的极大 可能性



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存