Любая проверка коммита, который не является именем одной из ваших веток, даст вам отдельную ГОЛОВУ. SHA1, который представляет вершину ветви, все еще дает отделенную ГОЛОВУ. Только проверка названия локального филиала позволяет избежать этого режима.
Смотрите совершение с отстраненной головой
Когда HEAD отсоединен, коммиты работают как обычно, за исключением того, что ни одна из названных веток не обновляется. (Вы можете думать об этом как об анонимной ветке.)

Например, если вы извлекаете «удаленную ветку», не отслеживая ее в первую очередь, вы можете получить отсоединенную головку.
Смотрите git: переключите ветку без отсоединения головы
С Git 2.23 (август 2019 г.) вам больше не нужно вводить в заблуждение git checkoutкоманду .
git switch Также можно оформить ветку и получить отсоединить ГОЛОВУ, кроме:
- у него есть явная
--detachопция
Чтобы проверить фиксацию HEAD~3для временной проверки или эксперимента без создания новой ветви:
git switch --detach HEAD~3
HEAD is now at 9fc9555312 Merge branch 'cc/shared-index-permbits'
- он не может по ошибке отсоединить удаленную ветку отслеживания
Видеть:
C:\Users\vonc\arepo>git checkout origin/master
Note: switching to 'origin/master'.
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 switching back to a branch.
Против используя новыйgit switch команду:
C:\Users\vonc\arepo>git switch origin/master
fatal: a branch is expected, got remote branch 'origin/master'
Если вы хотите создать новую локальную ветку, отслеживающую удаленную ветку:
git switch <branch>
Если <branch>не найдено, но существует ветвь отслеживания ровно в одном удаленном (вызовите его<remote> ) с совпадающим именем, обрабатывайте как эквивалент
git switch -c <branch> --track <remote>/<branch>
Нет больше ошибки!
Нет больше нежелательной головы!
branch-name@{n}n-й предыдущей позицииbranch-name. Но несмотря ни на что, в какой-то момент должно было бытьgit checkout <rev>. Если это не звучит как колокольчик, то, вероятно, вы сделали то, что упомянул Уилл - попытались сделатьgit checkout <file>и смогли указать ревизию случайно.