Как отменить последний коммит

Допустим, вы работаете над кодом в Git и вдруг что-то пошло не по плану. Вам нужно отменить ваш последний коммит. Как это сделать? Давайте разберемся!

Отменить последний коммит можно двумя способами. В этой статье мы рассмотрим оба.

Команда git revert

Команда git revert создает коммит, который возвращает изменения, внесенные с указанным коммитом. С помощью этой команды можно отменить последний коммит:

git revert <коммит-который-надо-вернуть>

Найти имя коммита, который нужно вернуть, можно при помощи команды git log. Первый коммит в выдаче и будет вашим последним созданным коммитом.

Вы можете скопировать его хэш (цифробуквенный идентификатор) и использовать его в команде revert.

Команда git reset

Отменить последний коммит можно также при помощи команды git reset. Но будьте осторожны: это изменит историю коммитов. Пользуйтесь этой командой пореже.

Эта команда смещает HEAD на последний коммит. По умолчанию используется опция —mixed. Все изменения после указанного коммита останутся в рабочем каталоге как неотслеживаемые.

git reset HEAD~1

Опция —soft позволяет сохранить незакоммиченные изменения (если они были) как staged.

git reset --soft HEAD~1

Если вы хотите сбросить все до последнего коммита, а также удалить все неподготовленные изменения, можно использовать опцию —hard.

git reset --hard HEAD~1

Таким образом вы вернетесь в положение до последнего коммита, но вместе с тем сотрете все изменения, не попавшие в коммит.

Что лучше использовать: reset или revert?

Используйте reset исключительно для сброса коммитов, существующих лишь локально. Эта команда меняет историю коммитов. А это может негативно сказаться на работе удаленных членов команды, которые могли основывать что-то на коммите, который вы сотрете.

Команда revert создает новый коммит, отменяющий изменения, и не перезаписывает историю коммитов. Так что, если коммит, который вы хотите вернуть, уже был запушен в общий репозиторий, лучше использовать revert.

Заключение

Мы разобрали два способа отменить последний коммит, а также разобрали, когда какой лучше использовать.

Теперь вы знаете, что делать, если вы вдруг заметите баг в вашем последнем коммите, или окажется, что изменения вовсе не должны были попасть в коммит!

Перевод статьи «Git Revert Commit – How to Undo the Last Commit».

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

1 комментарий к “Как отменить последний коммит”

  1. а как вернуть коммит, который был revert? нужно, чтобы коммиты после не затерлись

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх