Jeśli ktoś będzie kasował oddział:
git checkout 760ac7e
np. b9ac70bjak można wrócić do ostatniej znanej głowy, b9ac70bnie znając jej SHA1?
Jeśli ktoś będzie kasował oddział:
git checkout 760ac7e
np. b9ac70bjak można wrócić do ostatniej znanej głowy, b9ac70bnie znając jej SHA1?
Odpowiedzi:
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 -b new_branch_name, czy stracisz zobowiązania dokonane w stanie HEAD odłączonym?
git gcuruchomieniu są usuwani na zawsze. Możesz je oglądać, git reflogdopóki są tam.
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:
git checkout 1.87.1
warning: unable to unlink web/sites/default/default.settings.php: Permission denied
... other warnings ...
Note: checking out '1.87.1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again.
Example:
git checkout -b <new-branch-name>
HEAD is now at 50a7153d7... Merge branch 'hotfix/1.87.1'
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
error: The following untracked working tree files would be overwritten by checkout:
web/sites/default/default.settings.php
... other files ...
git checkout master --force(lub git checkout master -f) pracował:
git checkout master -f
Previous HEAD position was 50a7153d7... Merge branch 'hotfix/1.87.1'
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
Być może dokonałeś kilku nowych zmian w detached HEADstanie. Wierzę, że jeśli zrobisz tak, jak inne odpowiedzi radzą:
git checkout master
# or
git checkout -
wtedy możesz stracić swoje zobowiązania !! Zamiast tego możesz to zrobić:
# you are currently in detached HEAD state
git checkout -b commits-from-detached-head
a następnie połączyć się commits-from-detached-headw dowolną gałąź, aby nie stracić zobowiązań.
git checkout -- funkcja zabójcy!