11

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

请不要回答是 2^160 中有一个,或者 0.000000000000000000000000000000000000000000000006842277657836021% 的概率拥有该 SHA1。

我相当安全,我不是在他的 git 存储库中获得 0000000000000000000000000000000000000000 的 SHA1 的幸运儿。

4

2 回答 2

12

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

莱纳斯·托瓦兹:

全零的“旧 ref”被认为是“不关心”的 ref,并允许我们说“无论旧 ref 包含什么(或者即使它根本存在),都可以写新的 ref”。

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


正如SzG在评论中提到的,这是您在Git 接收/更新钩子和新分支中找到的那种 SHA1 ,表示不存在对象的“旧引用”(而“新引用”将创建所述对象,就像一个分支)。

于 2013-09-24T13:05:16.760 回答
11

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

于 2013-09-24T10:43:28.057 回答