2013-08-01 25 views
9

Przeczytałem wiele postów związanych z tym problemem dzisiaj (jeden przydatny tutaj tutaj: Fix a Git detached head? & Why did my Git repo enter a detached HEAD state?).Git detached head issue

Dzisiaj drapałem się po głowie. Nie jestem w stanie zrozumieć, jak to naprawić, nawet po przeczytaniu tych artykułów.

Wczoraj wszystko było ok, pamiętam, że wydałem polecenie kasie. Wieczorem dowiedziałem się, że Git nie wykazywał żadnych zmian, mimo że obecne były lokalne zmiany. Po dzisiejszych badaniach mogłem zauważyć, że status git pokazuje "HEAD odłączony od 99f040f".

Od tego czasu usunąłem folder .git w moim D: (na moim Windows 7) i przywrócono .git kopii zapasowej z 27 lipca. Nadal nie rozwiązany. Próbowałem też wersji z 25 lipca. Ale bez powodzenia. Więc przywróciłem wczorajszą wersję .git.

Wklejam zrzut ekranu z gitk. Czy jest coś, co mogę zrobić, aby rozwiązać ten problem? enter image description here

+1

'git checkout -b temp' do tworzenia kopii zapasowych, co masz teraz,' git branch' zobaczyć jakie gałęzie są w repo, a następnie 'git checkout ', aby dostać się do wybranej gałęzi. – Ajedi32

+0

możliwy duplikat [Git: Jak mogę pogodzić odłączony HEAD z wzorcem/oryginałem?] (Http://stackoverflow.com/questions/5772192/git-how-can-i-reconcile-detached-head-with-master- pochodzenie) – kan

Odpowiedz

11

Aby wrócić do ostatnio sprawdzane out oddziału, wystarczy wpisać

git checkout - 

wydaje się nieco pod udokumentowane (poszukiwania You may also specify w docs git checkout), ale pracuje dla mnie.
Może być również stosowany jako poręczny skrót do przełączania między dwoma oddziałami:

git checkout master 
git checkout branchwithaverylongnamethatyoudontwanttotypeagain 
git checkout - # brings back master 
git checkout - # brings back branchwithaverylongnamethatyoudontwanttotypeagain 
+0

W opisie opcji '' możesz również podać - co jest równoznaczne z "@ {- 1}". – rodrigo

+0

@rodrigo: dzięki za podpowiedź. zaktualizowana odpowiedź. – eckes

+0

Należy zauważyć, że w przypadku gałęzi o bardzo długich nazwach, których nie chcesz ponownie pisać, git obsługuje uzupełnianie kart nazw gałęzi. – Ajedi32

Powiązane problemy