Правильный ответ зависит от вашей конечной цели и от того, существуют ли эти коммиты в удаленном хранилище.
Если все, что вы хотите сделать, это посмотреть, как проект выглядит до того, как были применены эти коммиты, тогда
git checkout bad-commit-id^
Это проверяет другую "ветку", и позже вы можете оформить заказ master
снова.
Если ваша цель состоит в том, чтобы изменить ваш репозиторий так, чтобы эти коммиты по существу больше не существовали, вы можете сделать
git reset --hard bad-commit-id^
или
git revert bad-commit-id
прежние стирает все фиксирует от bad-commit-id
до HEAD
. Последний просто отменяет один плохой коммит, добавляя новый коммит к HEAD
.
То, что вы выберете, во многом зависит от наличия коммитов в удаленном репозитории. Использование reset
вызовет проблемы, когда вы попытаетесь отправить, либо для вас, либо для кого-то еще, кто клонировал хранилище.
Если это общий репозиторий и вы не очень опытный пользователь git, я бы рекомендовал использовать git revert
. Если вы знаете, что делаете, то git reset
также имеет свое место, но вам действительно нужно понимать последствия этого.
tl; dr - git revert
вполне безопасно, тогда как git reset
- опасный, но мощный инструмент.