Você tem que mudar sua cabeça, não a sua, é claro, mas git HEAD ....
Portanto, antes de responder, vamos adicionar alguns antecedentes, explicando o que é isso HEAD.
First of all what is HEAD?
HEADé simplesmente uma referência ao commit atual (mais recente) no branch atual.
Só pode haver um single HEADa qualquer momento. (excluindo git worktree)
O conteúdo de HEADé armazenado dentro .git/HEADe contém os 40 bytes SHA-1 da confirmação atual.
detached HEAD
Se você não está no último commit, o que significa que HEADestá apontando para um commit anterior no histórico detached HEAD.

Na linha de comando, será semelhante a este- SHA-1 em vez do nome do ramo, pois ele HEADnão está apontando para a ponta do ramo atual


Algumas opções sobre como recuperar de um HEAD desanexado:
git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back
Isso fará o checkout do novo ramo apontando para o commit desejado.
Este comando fará checkout para um determinado commit.
Nesse ponto, você pode criar uma ramificação e começar a trabalhar a partir deste ponto.
# 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>
Você sempre pode usar o reflogtambém.
git reflogexibirá qualquer alteração que tenha atualizado HEADe o check-out da entrada de reflog desejada HEADretornará a esta confirmação.
Sempre que o HEAD for modificado, haverá uma nova entrada no reflog
git reflog
git checkout HEAD@{...}
Isso o levará de volta ao seu commit desejado

"Mova" seu HEAD de volta para o commit desejado.
# 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.
- Nota: ( Desde o Git 2.7 ),
você também pode usá-lo git rebase --no-autostash.
"Desfazer" o intervalo de confirmação ou confirmação fornecido.
O comando reset irá "desfazer" quaisquer alterações feitas no commit fornecido.
Um novo commit com o patch de desfazer será confirmado enquanto o commit original também permanecerá no histórico.
# 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>
Este esquema ilustra qual comando faz o quê.
Como você pode ver lá, reset && checkoutmodifique o arquivo HEAD.
