Компьютеры · Инструкция
Как отменить merge-коммит через git revert -m
У merge несколько родителей, поэтому обычного `git revert <sha>` недостаточно.
Короткий ответ
Для merge-коммита укажите mainline: `git revert -m 1 <merge_sha>`. Номер parent определяет, относительно какой стороны Git обращает изменения.
Что делать
- Найдите merge через `git log --oneline --merges`.
- Посмотрите родителей: `git show --no-patch --pretty=%P <sha>`.
- Выберите правильный mainline и выполните `git revert -m <n> <sha>`.
- Просмотрите итоговый diff и тесты до push.
Проверка результата
- В истории появился отдельный revert-коммит, merge-коммит остался на месте.
- git show нового коммита обращает именно те изменения, которые требовалось отменить.
Важно
Неверный `-m` может откатить не ту сторону merge и повлиять на будущие слияния.
Что учитывать
Неверный `-m` может откатить не ту сторону merge и повлиять на будущие слияния.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. git-revert Documentation). Пример и формулировки — редакция N1RO на 2026-09-17.