Как обращаться с git gc fatal: ошибка плохого объекта refs/remotes/origin/HEAD: не удалось запустить repack
Я случайно ударил список сегодня, пытаясь собрать мусор.
$ git gc
fatal: bad object refs/remotes/origin/HEAD
error: failed to run repack
Как я могу справиться с этим?
Ответ 1
Я не понимаю последствий этого, но, как было предложено в этом потоке, когда я столкнулся с этим, я просто сделал
$ mv .git/refs/remotes/origin/HEAD /tmp
(сохраняя его на всякий случай), а затем
$ git gc
работал без жалоб; Я не сталкивался с какими-либо проблемами.
Ответ 2
Я думал, что решение было следующим, так как это, казалось, сработало, но, похоже, на самом деле не решило проблему.
git remote set-head origin --auto
Ответ 3
Проблема, с которой я столкнулся (это та же проблема, что @Stavarengo, упомянутая в этом комментарии выше), заключается в том, что удаленная ветка по умолчанию (develop в моей случай) был удален, но по-прежнему упоминался в .git/refs/remotes/origin/HEAD.
Открытие .git/refs/remotes/origin/HEAD в моем редакторе показало это:
ref: refs/remotes/origin/develop
Я тщательно отредактировал его, чтобы указать на мою новую ветку по умолчанию, и все было хорошо:
ref: refs/remotes/origin/master
Ключ, который подсказывал мне, что запуск git prune показал эту ошибку:
> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD