Как отменить последний коммит git
4 года назад
Andrey Moshkov
Ответы
Тут нужно понять, что именно необходимо сделать. Потому что под отменой часто понимают удаление последнего коммита. Удалить последний коммит можно очень просто с помощью команды git reset. Причём можно как сохранить изменения в рабочей директории, так и полностью удалить все изменения сделанные в последнем коммите.
А вот отменить изменения сделанные в последнем коммите можно с помощью команды git revert. Она делает еще один коммит, но с противоположными изменениями.
4 года назад
Roman Ashikov
Обратите внимание, что команда git reset может быть опасна, поскольку она изменяет историю репозитория. Поэтому важно следить за тем, что вы делаете, и убедиться, что вы работаете над локальным репозиторием, а не с удаленным репозиторием, так как при изменении истории удаленного репозитория у других участников могут возникнуть проблемы с синхронизацией своих локальных репозиториев.
3 года назад
Сергей Мишин
Как отменить последний коммит в Git
Сначала определитесь, что именно нужно сделать. Ответ зависит от того, отправили вы коммит в удалённый репозиторий или нет.
Коммит ещё не отправлен (только локально)
Хочу убрать коммит, но оставить изменения в файлах
Коммит исчезнет, файлы останутся изменёнными. Можно исправить и закоммитить снова.
Хочу убрать коммит и вернуть файлы к предыдущему состоянию
Файлы будут перезаписаны. Восстановить их после этого сложно — будьте внимательны.
Хочу исправить коммит, а не удалять
Если просто забыли добавить файл или опечатались в сообщении:
--amend заменяет последний коммит новым. История не удлиняется.
Коммит уже отправлен в удалённый репозиторий
git reset в этом случае опасен: вы переписываете историю,
и у остальных участников команды возникнут конфликты.
Правильный способ — создать новый коммит, который отменяет изменения:
Git создаст новый коммит с противоположными изменениями и откроет редактор для сообщения. Чтобы не открывал — добавьте флаг:
После этого отправляйте в обычном режиме:
Сравнение подходов
Главное правило
Если коммит уже в удалённом репозитории — используйте только git revert.
git reset в этом случае сломает историю у всех, кто уже получил этот коммит.
9 дней назад
Никита Вихров





