Если ошибка уже в коммите, есть два разных инструмента.
revert — создаёт НОВЫЙ коммит, отменяющий изменения старого. История сохраняется целиком. Это безопасный способ, особенно для коммитов, уже отправленных на GitHub: git revert a1b2c3d
reset — сдвигает ветку назад, как будто последних коммитов не было. Удобно для локальных, ещё не опубликованных коммитов: git reset --soft HEAD~1 — отменить коммит, изменения оставить в индексе git reset --hard HEAD~1 — отменить коммит И стереть изменения (осторожно!)
Правило безопасности: то, что уже отправлено на GitHub и видят коллеги, лучше отменять через revert, а не переписывать историю через reset. Так вы не сломаете работу другим.