Способов отменить изменения в гите множество, их варианты в ответах озвучили.
На мой вкус, для отмены изменений одного коммита, идеологически правильно выполнить
git revert для этого коммита. Revert создаст новый комммит, отменяющий действия отменяемого коммита. Таким образом можно зафиксировать в истории репозитория факт отмены и, например, пометить причину совершенной отмены.
Так же, если вдруг нужно отменить не весь коммит, а только часть его изменений, можно выполнить частичный revert:
git revert <плохой_коммит> --no-commit # Revert будет подготовлен, но не закомичен
git reset # Выполнить unstage всех файлов
git add ... список плохих файлов # Добавляем в индекс те файлы, что требуется отревертить. Используя ключ -p можно добавить часть изменений в файле, а не файл целиком.
git checkout . # Сбрасываем все прочие файлы, что не в индексе, до оригинального состояния
git commit # Коммитим revert