Webdevkin
Онлайн-курсы, статьи по веб-разработке и интернет-магазинам, уроки vue.js

Изучаем Git. Урок 15.
git revert

Урок, в котором мы узнаем, как отменять произвольный коммит

Видеоурок

Конспект урока

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Зачем нужна команда git revert

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

Но есть 2 причины не делать это руками:
1. Это долго. В реальном проекте в коммите может быть десятки и сотни изменений
2. Человеческий фактор. При ручной работе легко ошибиться, пропустить какие -то изменения или удалить что-то лишнее

Как отменить произвольный коммит

Делается это командой git revert с указанием хэша нужного коммита

При этом создается новый коммит

Конфликты при git revert

Допустим, мы выбрали коммит для отмены. Этот коммит затрагивает изменения в некоторых строках. Если в тех коммитах, которые сделаны после него, в этих же строках были сделаны другие изменения, то возникнут конфликты

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

После резолва конфликтов (у нас был отдельный урок на эту тему) нужно запустить следующую команду

Для справки

Git revert не занимается переписыванием истории, эта команда просто создает новый коммит. Поэтому ее можно безопасно использовать для любых коммитов, в отличие от git commit --amend и git reset HEAD^, которые мы рассматривали в прошлом уроке

На что обратить внимание при отмене произвольного коммита

При отмене произвольного коммита обращайте внимание на:
1. Количество изменений в коммите
2. Возраст коммита
3. Автора коммита

Чем больше изменений в коде и чем старше коммит, тем больше вероятность конфликтов при попытке его отмены. Следует это учитывать и быть готовым резолвить конфликты

Git revert в phpStorm

В phpStorm команда делается просто - в истории коммитов жмем правой кнопкой и выбираем Revert commit. Если будут конфликты, phpStorm сразу предложит их разрезолвить. После резолва останется задать commit message новому коммиту, делать git revert --continue в терминале не нужно

Спасибо за внимание и до встречи!

Все уроки курса

* платные уроки

список обновляется...