例如,如果要构建目录结构,其中在Git存储库中为提交命名了一个目录,并且您希望该目录足够短以使您的眼睛不会流血,但又要足够长以使冲突可以忽略不计,通常需要多少SHA子字符串?
假设我要唯一标识此更改:https://github.com/wycats/handlebars.js/commit/e62999f9ece7d9218b9768a908f8df9c11d7e920
我最多只能使用前四个字符:https://github.com/wycats/handlebars.js/commit/e629
但是我觉得那会很冒险。但是,假设某个代码库可能在几年内可能发生了3万次更改,例如,如果我使用8个字符,发生冲突的机会是多少? 12点是否存在通常被认为可以接受的数字?
此问题实际上是在Chapter 7 of the Pro Git book中回答的:
通常,八个到十个字符足以构成唯一字符在一个项目中。最大的Git项目之一Linux内核,开始需要在40个字符中保留12个字符唯一。
7位数是短SHA的Git默认值,因此对大多数项目来说都很好。如前所述,内核团队已经增加了几次,因为提交了[[几十万]]。因此,对于您的约3万次提交,8或10位数字应该是完全可以的。
git rev-parse --short
询问最短但唯一的SHA1。参见“ git rev-parse --short
”2