Перш ніж відповісти, давайте додамо деяку інформацію, пояснивши, що це 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не вказує на кінчик поточної гілки:


Кілька варіантів того, як відновитись із відокремленої ГОЛА:
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та перевірка потрібного запису відмикання HEADповернеться до цього зобов’язання.
Кожен раз, коли зміниться 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 a 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.

git checkout 23b6772повинен робити.