Любой, кто знаком с отсутствующим объектом git error 00000000000000000000000000000000000000000000 для refs/heads/... "?
Мы запускаем git v1.7.1 и настроены gitweb. Мы также используем гитолит для администрирования, но я не думаю, что это связано с этой проблемой. Время от времени мы получаем ошибку в журнале Apache, например:
missing object 0000000000000000000000000000000000000000 for refs/heads/...
Если elipse на конце обычно является именем ветки. Я считаю, что строка нулей suppost является значением SHA1. Очевидно, что все нули не являются значением SHA1. Мне не ясно, где это значение исходит от?
Я запускал git fsck на сервере и не сообщал о проблеме, однако git gc решает проблему. Кроме того, мы можем потянуть и нажать на этот репозиторий (и эту ветку) в порядке. Выполняется только gitweb.
Я знаю, что другие видели эту проблему, потому что здесь есть закрытый вопрос:
Ошибка Gitweb: фатальный: отсутствующий объект 00000000000000000000000000000000000000000000 для refs/heads/master
На этот вопрос нет ответа.
Дополнительная информация
Теперь мы увидели это в нашем репозитории gitolite-admin. У нас нет веток в нашем хранилище gitolite-admin, поэтому это не было на ветке.
Ответы
Ответ 1
Эта ошибка возникла для меня после того, как ветвь по умолчанию на удаленном компьютере была изменена, а прежняя ветка по умолчанию была удалена. Мой локальный репозиторий по-прежнему имел ссылку на удаленную ветку в
.git\рефов\перепятнышки\происхождение\ГОЛОВА
Я просто обновил это, чтобы ссылаться на новый пульт по умолчанию.
Ответ 2
Проверьте значение umask пользователя, выполняющего git -demon. Установка его на 022 может помочь вам (посмотрите на "man umask" ).
Ответ 3
Это значение по умолчанию для ветки без коммитов. Когда вы нажимаете новую ветку, вы увидите на выходе 00000- > ef357 или что-то в этом роде.
Это также может быть вызвано материалами, чувствительными к регистру.
Ответ 4
Это происходит для меня всякий раз, когда репо обновляется, а разрешения для Apache неправильно установлены.
Я установил крюк script для запуска после каждой фиксации для исправления разрешений (инструкции здесь http://sitaramc.github.com/gitolite/hooks.html). Я добавил Apache в группу git, и, следовательно, все файлы должны быть прочитаны с помощью gitweb cgi, запускаемого Apache. Я рассматриваю возможность использования suexec для исправления этого.
Ответ 5
Я также нашел подобную проблему локально для одного из моих проектов. Для меня поведение выглядит следующим образом:
- на
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
.