Ви повинні змінити свою ГОЛОВУ, не вашу, звичайно, але git HEAD ....
Тож перед тим, як відповісти, давайте додамо деяку інформацію, пояснивши, що це 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 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.
