Moje repozytorium git w jakiś sposób nie działa - załadowałem msysgit dziś rano i zamiast nazwy gałęzi wyświetlanej po bieżącym katalogu, wyświetla się "((ref: re ...))", 'git status' zgłasza wszystko jako new file, 'git log' i 'git reflog' powiedz mi "fatal: zła domyślna wersja 'HEAD'" i tak dalej.
Wykonanie polecenia „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 wydaje się istnieć / wskazywać na cokolwiek.
Wiem, że git przechowuje wszystkie 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ł zresetować do nich HEAD?
EDYCJA: Ojej. Odkryłem „git fsck”, a „git fsck --full” zgłasza „fatal: obiekt 03ca4 ... jest uszkodzony”. Co do diabła mogę z tym zrobić?
EDYCJA: Ojej oh kochany. Sprawdziłem inną gałąź, a następnie próbowałem odtworzyć oryginalną gałąź o tej samej nazwie, używając 'git checkout -b lostbranchname', a git mówi: „błąd: nie można rozwiązać referencji refs / heads / lostbranchname: brak błędu, krytyczny: niepowodzenie aby zablokować odniesienie do aktualizacji: brak błędu ”. „Brak błędu” musi być szczególnie paskudnym błędem. Wygląda więc na to, że wciąż się kręci, ale nie można go użyć ani zabić.
EDYCJA: Super duper ojej. Zrobiłem mnóstwo rozpakowywania, przepakowywania i wymiany rzeczy, jak zasugerowałem tutaj: Jak odzyskać obiekty Gita uszkodzone przez awarię dysku twardego? , ale teraz otrzymuję kolejny hash zgłaszany jako uszkodzony, dla czegoś tak nieszkodliwego jak „status gita”. Myślę, że wszystko jest wężem. Git jest uroczy iw ogóle, ale nie powinienem mieć do czynienia z takimi rzeczami.
git checkout -b lostbranchname- jeśli zależy Ci tylko na nazwie gałęzi (a nie na jej zawartości), możesz ręcznie usunąć (lub zmienić nazwę).git/refs/heads/lostbranchname- mam nadzieję, że załatwi sprawę.