Вы можете вернуться к предыдущему коммиту с помощью интерактивного перебазирования.Предполагая, что вы хотите вернуть HEAD в HEAD ~ 5 (5 коммитов раньше), вы можете выбрать родителя HEAD ~ 5, т.е. HEAD ~ 6, и просто применить HEAD ~ 5 поверх него.
git rebase -i HEAD~6
Каждый коммит между HEAD ~ 6 и HEAD будет переписан.Скажем, HEAD ~ 5 SHA1 - ABC, а HEAD ~ 6 SHA1 - XYZ.Текущий заголовок PQR.Нам нужно удалить другие коммиты из приведенного ниже редактирования, так как мы не хотим переписывать их на HEAD ~ 6.Мы просто хотим применить HEAD ~ 5 поверх HEAD ~ 6.У нас должна быть хотя бы одна запись в этом файле, иначе rebase будет прервана.Итак, мы применяем HEAD ~ 5 поверх HEAD ~ 6.
edit ABC reverting to state before merge
# Rebase XYZ..PQR onto XYZ
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Теперь введите приведенную ниже команду, чтобы изменить историю и ввести сообщение фиксации.
git commit --amend
Теперь введите следующую команду, чтобы продолжить и выйти из редактора
git commit --continue
Подробнее о переписывание истории git