Jeśli ktoś będzie kasował oddział:
git checkout 760ac7e
np. b9ac70b
jak można wrócić do ostatniej znanej głowy, b9ac70b
nie znając jej SHA1?
Jeśli pamiętasz, który oddział został wcześniej sprawdzony (np. master
), Możesz po prostu
git checkout master
wyjść z odłączonego stanu HEAD .
Ogólnie rzecz biorąc: git checkout <branchname>
wyciągnie cię z tego.
Jeśli nie pamiętasz ostatniej nazwy oddziału, spróbuj
git checkout -
Spróbuje to również sprawdzić Twój ostatni wyrejestrowany oddział.
git checkout -
- funkcja zabójcy!git checkout -b new_branch_name
, czy stracisz zobowiązania dokonane w stanie HEAD odłączonym?git gc
uruchomieniu są usuwani na zawsze. Możesz je oglądać,git reflog
dopóki są tam.Posługiwać się
git reflog
do znajdowania skrótów wcześniej sprawdzonych zatwierdzeń.Polecenie skrótu, aby dostać się do ostatniej wypisanej gałęzi (nie jestem pewien, czy działa poprawnie z odłączoną HEAD i pośrednimi zatwierdzeniami) to
git checkout -
źródło
Miałem ten przypadek krawędzi, w którym sprawdziłem poprzednią wersję kodu, w której moja struktura katalogów plików była inna:
W takim przypadku może być konieczne użycie opcji --force (gdy wiesz, że powrót do pierwotnego oddziału i odrzucenie zmian jest bezpieczną czynnością).
git checkout master
nie działał:git checkout master --force
(lubgit checkout master -f
) pracował:źródło
Być może dokonałeś kilku nowych zmian w
detached HEAD
stanie. Wierzę, że jeśli zrobisz tak, jak inne odpowiedzi radzą:wtedy możesz stracić swoje zobowiązania !! Zamiast tego możesz to zrobić:
a następnie połączyć się
commits-from-detached-head
w dowolną gałąź, aby nie stracić zobowiązań.źródło