混帐SHA1 0000000000000000000000000000000000000000(全零),这正常吗?

den*_*ini 9 git sha

我在git中有一个尚未解决的分支,SHA1 0000000000000000000000000000000000000000(全为零),这是正常的还是我损坏了git存储库?

请不要回答是,在2 ^ 160或0.00000000000000000000000000000000000000000000006842277657836021%概率中有一个具有该SHA1.

我是相当安全的,我不是个幸运的家伙谁在他的git仓库得到了0000000000000000000000000000000000000000的SHA1.

Mat*_*Mat 9

除其他元数据外,提交还包括提交日期.因此,在实际创建提交之前,不能显示提交哈希.您所看到的不是提交SHA,它只是UI中使用的默认值.


Von*_*onC 9

注意,你可以找到"全零SHA1"一直回到提交f65fdf(2005年6月30日,git的v0.99)

Linus Torvalds:

所有零的"旧参考"被认为是"不关心"的参考,并且允许我们说"不管旧的参考包含什么(或者甚至它根本存在),写下新参考".

这允许(如果git-send-pack这样做)创建新的refs并修复旧的refs.


正如SzG 在评论中提到,这是你在Git接收/更新钩子和新分支中找到的SHA1 ,代表一个不存在的对象的"old-ref"(而"new-ref"会创建所述对象) ,像一个分支).