Если вы захотите оформить ветку:
git checkout 760ac7e
Например b9ac70b
, как можно вернуться к последней известной голове, b9ac70b
не зная ее SHA1?
Если вы помните, какая ветвь была проверена ранее (например master
), вы можете просто
git checkout master
выйти из отсоединенного состояния ГОЛОВА .
Вообще говоря: git checkout <branchname>
вытащить вас из этого.
Если вы не помните последнее название ветви, попробуйте
git checkout -
Это также пытается проверить вашу последнюю проверенную ветку.
git checkout -
- убийственная особенность!git checkout -b new_branch_name
, вы потеряете коммиты, сделанные в состоянии отключенного HEAD?git gc
они запускаются, они удаляются навсегда. Вы можете смотреть ихgit reflog
до тех пор, пока они все еще там.Используйте
git reflog
для поиска хэшей ранее проверенных коммитов.Команда быстрого доступа к вашей последней извлеченной ветке (хотя она не уверена, работает ли она правильно с отключенным HEAD и промежуточными коммитами)
git checkout -
источник
У меня был такой крайний случай, когда я проверил предыдущую версию кода, в которой структура моего файлового каталога была другой:
В таком случае вам может понадобиться использовать --force (когда вы знаете, что возвращение к исходной ветке и отказ от изменений - это безопасная вещь).
git checkout master
не сработало:git checkout master --force
(илиgit checkout master -f
) работал:источник
Возможно, вы сделали несколько новых коммитов в
detached HEAD
штате. Я считаю, что если вы делаете, как другие ответы, советуйте:тогда вы можете потерять свои коммиты !! Вместо этого вы можете сделать это:
а затем слиться
commits-from-detached-head
в любую ветку, которую вы хотите, чтобы вы не потеряли коммиты.источник