Просмотреть осиротевшие коммиты в Git

Мой git-репозиторий почему-то пошёл не так, как надо - я загрузил msysgit этим утром, и вместо имени ветки, отображаемого после текущего каталога, он говорит «((ref: re ...))», «git status» сообщает всё как новый файл, 'git log' и 'git reflog' говорят мне "fatal: bad default revision 'HEAD'" и так далее.

Выполнение 'git reflog --all' или 'gitk --all' показывает, что остальная часть репозитория не повреждена, но похоже, что ветвь, над которой я работал, только что исчезла, что объясняет, почему HEAD не существует / указать на что угодно.

Я знаю, что git хранит все виды информационных блоков, и я предполагаю, что мои коммиты как-то осиротели, так есть ли какая-нибудь команда, которая покажет мне эти коммиты, чтобы я мог сбросить HEAD к ним?

РЕДАКТИРОВАТЬ: О дорогой. Я обнаружил «git fsck», и «git fsck --full» сообщает «fatal: объект 03ca4 ... поврежден». Что, черт возьми, я могу с этим поделать?

РЕДАКТИРОВАТЬ: О дорогой о дорогой. Я извлек другую ветку, затем попытался воссоздать исходную ветку с тем же именем, используя 'git checkout -b lostbranchname', и git говорит: "ошибка: невозможно разрешить ссылку refs /heads / lostbranchname: нет ошибки, фатально: не удалось заблокировать ссылку для обновления: нет ошибок ". «Нет ошибок» должно быть особенно неприятной ошибкой. Похоже, он все еще висит, но не может быть использован и не может быть убит.

РЕДАКТИРОВАТЬ: Супер пупер о, дорогой. Я сделал кучу распаковки, перепаковки и замены вещей, как это было предложено здесь:Как восстановить объекты Git, поврежденные в результате сбоя жесткого диска?, но теперь я получаю еще один хэш, который считается испорченным, за что-то такое же безобидное, как «git status». Я думаю, что все это скрыто. Git хорош и все такое, но мне не нужно иметь дело с такими вещами.

Ответы на вопрос(3)

Ваш ответ на вопрос