Якщо ви хочете оформити філію:
git checkout 760ac7e
наприклад b9ac70b
, як можна повернутися до останньої відомої голови, b9ac70b
не знаючи її SHA1?
Якщо ви хочете оформити філію:
git checkout 760ac7e
наприклад b9ac70b
, як можна повернутися до останньої відомої голови, b9ac70b
не знаючи її SHA1?
Відповіді:
Якщо ви пам'ятаєте, яку галузь раніше перевіряли (наприклад master
), ви могли просто
git checkout master
вийти з відокремленого стану голови .
Взагалі кажучи: git checkout <branchname>
позбавить вас від цього.
Якщо ви не пам’ятаєте прізвища гілки, спробуйте
git checkout -
Це також намагається перевірити вашу останню перевірену гілку.
git checkout -b new_branch_name
, ви втрачаєте зобов’язання, зроблені, перебуваючи у відірваному стані HEAD?
git gc
вони запущені, вони видаляються назавжди. Ви можете спостерігати за ними git reflog
, поки вони все ще є.
У мене був цей крайній випадок, коли я перевірив попередню версію коду, в якій структура моєї файлової директорії відрізнялася:
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'
У такому випадку вам може знадобитися --force (коли ви знаєте, що повернутися до початкової гілки та скасувати зміни - це безпечно).
git checkout master
не працює:
$ 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
(або git checkout master -f
) працювали:
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'.
Можливо, ви зробили деякі нові зобов’язання в detached HEAD
державі. Я вірю, якщо ви зробите так, як радять інші відповіді:
git checkout master
# or
git checkout -
тоді ви можете втратити свої зобов'язання !! Натомість ви можете зробити це:
# you are currently in detached HEAD state
git checkout -b commits-from-detached-head
а потім об'єднайтеся commits-from-detached-head
в будь-яку галузь, яку ви хочете, щоб ви не втратили комітети.
git checkout -
- вбивча особливість!