Самый безопасный и, вероятно, самый чистый путь - это интерактивная перебазировка.
git rebase -i HEAD^^
Или же,
git rebase -i baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e^
Оттуда вы можете заключить коммиты, которые помещают один или несколько коммитов в предыдущий коммит. Чтобы полностью удалить коммит из истории, удалите строку из списка.
Вы можете отменить коммит, git revert
но он добавит больше сообщений коммита в историю, что может быть нежелательно. Используйте -n
параметр, чтобы сказать Git, чтобы он не совершал возврат сразу. Вы можете перебазировать в интерактивном режиме и раздавить их до предыдущего коммита, чтобы сохранить вещи в чистоте.
Если два коммита, с которыми вы работаете здесь, влияют на один и тот же файл (ы), вы можете увидеть конфликт слияния.
Сброс хранилища с помощью git reset --hard
должен быть сделан с осторожностью, так как это не может быть отменено.
Переписывать историю следует с осторожностью.