13

我们正在运行 git v1.7.1 并配置了 gitweb。我们也使用 gitolite 进行管理,但我认为这与这个问题无关。我们有时会在 Apache 日志中收到错误消息,例如:

missing object 0000000000000000000000000000000000000000 for refs/heads/...

末尾的省略号通常是分支名称。我相信零字符串应该是 SHA1 值。显然,全零不是 SHA1 值。我不清楚这个值是从哪里来的?

我在服务器上运行了 git fsck 并没有报告问题,但是 git gc 解决了这个问题。此外,我们能够很好地拉取和推送到这个存储库(和那个分支)。只有 gitweb 似乎受到影响。

我知道其他人已经看到了这个问题,因为这里有一个关于它的封闭问题: Gitweb failure: fatal: missing object 0000000000000000000000000000000000000000 for refs/heads/master 这个问题没有答案。

附加信息

我们现在已经在我们的 gitolite-admin 存储库中看到了这个问题。我们的 gitolite-admin 存储库中没有分支,所以它不在分支上。

4

6 回答 6

4

在远程的默认分支被更改并且以前的默认分支被删除后,我发生了这个错误。我的本地存储库仍然引用了已删除的分支

.git\refs\remotes\origin\HEAD

我只是更新了它以引用新的默认遥控器。

于 2014-10-28T19:55:00.693 回答
2

检查运行 git-daemon 的用户的 umask 值。将其设置为 022 可能会对您有所帮助(查看“man umask”)。

于 2012-03-27T09:13:35.877 回答
2

对于我的一个项目,我在本地也发现了类似的问题。对我来说,行为如下:

  • git fetch我明白了error: refs/heads/test_theme does not point to a valid object!
  • git branch我明白了fatal: missing object 97fe4dfaa2bfb3768f42bb5caca1c7cd37a26734 for refs/heads/test_theme

我真的不能说我记得我对那个分支做了什么以及什么时候。对不起。

但是,当我这样做时,错误就消失了rm -rf /path/to/project/.git/refs/heads/test_theme

于 2019-09-04T12:33:29.777 回答
1

This happens for me whenever a repo gets updated and the permissions are set incorrectly for Apache.

I've set a script hook to run after each commit to fix the permissions (instructions here http://sitaramc.github.com/gitolite/hooks.html). I've added Apache to the git group, and thus all of the files must be readable by the gitweb cgi run by Apache. I am considering using suexec to remedy this.

于 2012-03-24T20:22:06.133 回答
1

这是没有提交的分支的默认设置。当你推送一个新分支时,你会在输出中看到 00000->ef357 或类似的东西。

它也可能是由区分大小写的东西引起的。

于 2011-05-25T22:13:34.097 回答
0

我的解决方案是丢弃一些历史。做git clone别的地方。复制.git/refs以覆盖坏的。

于 2020-06-01T10:00:59.160 回答