Вы должны изменить свою ГОЛОВУ, Не свою конечно, но мерзавца ГОЛОВУ ....
Поэтому, прежде чем ответить, давайте добавим некоторую предысторию, объясняющую, что это такое HEAD.
First of all what is HEAD?
HEADэто просто ссылка на текущий коммит (последний) в текущей ветке.
Там может быть только один HEADв любой момент времени. (без учетаgit worktree )
Содержимое HEADхранится внутри .git/HEADи содержит 40 байтов SHA-1 текущего коммита.
detached HEAD
Если вы не используете последний коммит, то HEADесть он указывает на предыдущий коммит в истории detached HEAD.

В командной строке это будет выглядеть так - SHA-1 вместо имени ветви, так как HEADне указывает на конец текущей ветви


Несколько вариантов того, как восстановить систему с отключенной HEAD:
git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back
Это извлечет новую ветку, указывающую на желаемый коммит.
Эта команда вернется к данному коммиту.
На этом этапе вы можете создать ветку и начать работать с этого момента.
# Checkout a given commit.
# Doing so will result in a `detached HEAD` which mean that the `HEAD`
# is not pointing to the latest so you will need to checkout branch
# in order to be able to update the code.
git checkout <commit-id>
# create a new branch forked to the given commit
git checkout -b <branch name>
Вы всегда можете использовать reflogтакже.
git reflogбудет отображаться любое изменение, которое обновило, HEADи проверка желаемой записи reflog установитHEAD вернет этот коммит.
Каждый раз, когда ГОЛОВКА изменяется, в reflog
git reflog
git checkout HEAD@{...}
Это вернет вас к желаемой фиксации

«Переместите» ГОЛОВУ назад к желаемому коммиту.
# This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
git reset --hard 0d1d7fc32
# Alternatively, if there's work to keep:
git stash
git reset --hard 0d1d7fc32
git stash pop
# This saves the modifications, then reapplies that patch after resetting.
# You could get merge conflicts if you've modified things which were
# changed since the commit you reset to.
- Примечание: ( начиная с Git 2.7 )
вы также можете использовать git rebase --no-autostash.
"Отменить" данный диапазон фиксации или фиксации.
Команда сброса «отменит» любые изменения, сделанные в данном коммите.
Новый коммит с патчем отмены будет зафиксирован, в то время как оригинальный коммит останется в истории.
# add new commit with the undo of the original one.
# the <sha-1> can be any commit(s) or commit range
git revert <sha-1>
Эта схема иллюстрирует, какая команда что делает.
Как вы можете видеть там, reset && checkoutизмените HEAD.
