Git unmerge (+ git revert) - отмена слияния, откат изменений

preview_player
Показать описание
Для отмены слияния веток в git (git merge) есть два решения:
- удаление коммита слияния (unmerge, merge undo, merge delete)
- отмена изменений слияния (revert)

Первый случай поможет, если вы еще не сделали новых коммитов, после слияния веток, и не отправили изменения в ваш центральный репозиторий (например в GitHub или Bitbucket). Для удаления коммита слияния нужно перейти на ветку, в которую вы влили другую ветку. Например так:

git checkout master

и выполнить операцию отката ветки:

git reset --hard HEAD^

Для отмены изменений слияния можно выполнить либо

git revert _some_hash_

где _some_hash_ - это хэш коммита, который вы хотите отменить (это отменяет изменения конкретного коммита). Либо

git revert -m 1 _some_hash_

где _some_hash_ - это хэш коммита слияния (коммит созданный командой git merge), который вы хотите отменить. Этот вариант отменяет все изменения, сделанные командой git merge, и восстанавливает состояние ветки (в которую происходило вливание) до мерджа

Git reset:

Рекомендации по теме
Комментарии
Автор

какая-то каша, в не видео. ничего не понятно, реверт не сработал

Дмитрий-нуж
Автор

Спасибо за видео.
Такой вопрос: условно была слита некоторая ветка не туда и запушена на удалённый репо; для удобства скажем, что хеш коммита слияния равен 0097a, итого есть два варианта: git revert 0097а и git revert -m 1 0097a с последующим перепушем откаченных изменений в удалённый репозиторий. Какая между этими способами разница, и какой более предпочтителен?

channel-ygxc
Автор

ничего не понятно . протороторил что то..

chingizbapanov
Автор

А если я хочу объединить два коммита в один. с сохранением комментария от предыдущего коммита?

leofom
Автор

А если был неправильно выполнен merge?
1) "revert -m 1" (ревертим merge)
2) "merge robotics..." (Пытаемся снова смерджить ветку, и получает already up to date, так как все коммиты достижимы)
Как поступать в случае, если зафакапили merge (без переписывания истории)?

PlesneviyGRIB
Автор

такой вопрос у тебя есть текстовая шпаргалка по командам git

lessgrow
Автор

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

CraykTV