Git откат коммита

В git есть несколько способов откатить нежелательный коммит. Несколько способов предусматривают разные действия и все они имеют разные последствия.

Если нужно просто изменить сообщение последнего коммита (может сделали опечатки и надо поправить чтоб было красиво), то делаем просто

Где попадаем в текстовый редактор и правим сообщение, сохраняем и выходим. Так же этот способ подходит если забыли проиндексировать изменения в файле и уже сделали коммит, то добавляем

Следующий способ это git reset

Чтобы сбросить коммит, но оставить изменения в файлах, то можно сделать

И так же можно сделать жестко(не рекомендуется) с опцией hard

В этом случае вы потеряете все изменения в файлах.

Есть еще опция mixed, она идет по умолчанию

Допустим у нас коммиты в мастер ветке – 1 – 2 – 3

Если сделать

То получим, что HEAD будет указывать на 2, но изменения из ‘3’ не будут в индексе и git status покажет, что все изменения not staged. То есть нужно их добавить через add  и потом закоммитить.

И еще один способ, который я регулярно использую это git revert

Если делаем

или

–no-edit позволяет делать revert без захода в текстовый редактор

То это отменяет нам последний коммит и HEAD переходит на новый коммит, то есть revert по сути рекоммитит последний HEAD.

Если я сделал git commit -m “Fucked commit”  и хочу его откатить черeз revert то результат будем таким

Юзайте git правильно не делайте хардовых ресетов=)

 

Добавить комментарий

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