Przeglądaj osierocone zatwierdzenia w Git

Moje repozytorium git jakoś poszło nieźle - wczoraj załadowałem msysgit i zamiast nazwy gałęzi wyświetlanej po bieżącym katalogu, mówi „((ref: re ...))”, „git status” zgłasza wszystko jako nowy plik, „git log” i „git reflog” mówią mi „fatal: bad default revision” HEAD ”i tak dalej.

Wykonywanie „git reflog --all” lub „gitk --all” pokazuje mi, że reszta repozytorium jest nienaruszona, ale wygląda na to, że gałąź, nad którą pracowałem, właśnie zniknęła, co wyjaśnia, dlaczego HEAD nie istnieje / wskazać na cokolwiek.

Wiem, że git przechowuje różne rodzaje informacji i zakładam, że moje zatwierdzenia zostały w jakiś sposób osierocone, więc czy jest jakieś polecenie, które pokaże mi te zatwierdzenia, abym mógł przywrócić im HEAD?

EDIT: Ojej. Odkryłem 'git fsck' i 'git fsck --full' raporty 'fatal: obiekt 03ca4 ... jest uszkodzony ". Co mogę z tym zrobić diabłem?

EDYCJA: O mój drogi, kochanie. Sprawdziłem inną gałąź, a następnie próbowałem odtworzyć oryginalną gałąź o tej samej nazwie za pomocą 'git checkout -b lostbranchname' i git says "błąd: nie można rozwiązać odniesienia refs / heads / lostbranchname: Brak błędu, fatal: Failed aby zablokować ref dla aktualizacji: Brak błędu ”. „Brak błędu” musi być szczególnie nieprzyjemnym błędem. Wygląda na to, że wciąż się kręci, ale nie można go użyć i nie można go zabić.

EDYCJA: Super duper oh kochanie. Zrobiłem kilka rozpakowań i przepakowania i wymiany rzeczy, jak sugerowano tutaj:Jak odzyskać obiekty Git uszkodzone przez awarię dysku twardego?, ale teraz otrzymuję inny hash zgłoszony jako uszkodzony, za coś tak nieszkodliwego jak „status git”. Myślę, że cała ta sprawa jest spowita. Git jest piękny, ale nie powinienem zajmować się takimi rzeczami.

questionAnswers(3)

yourAnswerToTheQuestion