例如,如果您要构建一个目录结构,其中一个目录以 Git 存储库中的一次提交命名,并且您希望它足够短以防止眼睛流血,但又要足够长以便有机会它的碰撞可以忽略不计,通常需要多少 SHA 子串?
假设我想唯一标识此更改:https://github.com/wycats/handlebars.js/commit/e62999f9ece7d9218b9768a908f8df9c11d7e920
我只能使用前四个字符: https://github.com/wycats/handlebars.js/commit/e629
但我觉得这样做有风险。但是假设一个代码库在几年内可能有——比方说——30k 的变化,如果我使用 8 个字符,发生冲突的可能性有多大? 12?对于这类事情,是否有一个普遍认为可以接受的数字?
最佳答案
这个问题实际上在Chapter 7 of the Pro Git book中得到了回答。 :
Generally, eight to ten characters are more than enough to be unique within a project. One of the largest Git projects, the Linux kernel, is beginning to need 12 characters out of the possible 40 to stay unique.
7 位数是短 SHA 的 Git 默认值,因此这对大多数项目来说都很好。如前所述,内核团队已经将他们的数量增加了数倍,因为他们有几十万 提交。因此,对于您的 ~30k 提交,8 或 10 位数字应该完全没问题。
关于git - *通常*认为有多少 git sha 是唯一标识给定代码库中的更改所必需的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134627/