Если вы хотите отменить merge
коммит, вот что вам нужно сделать.
- Сначала проверьте
git log
, чтобы найти идентификатор вашего слияния.Вы также найдете несколько родительских идентификаторов, связанных с объединением (см. Изображение ниже).
Запишите идентификатор фиксации слияния, показанный вжелтый.Родительские идентификаторы - это идентификаторы, записанные в следующей строке как Merge: parent1 parent2
.Сейчас ...
Рассказ:
Переключиться на ветку, в которой было выполнено слияние.Затем просто выполните команду
git revert <merge commit id> -m 1
, которая откроет консоль
vi
для ввода сообщения о коммите.Написать, сохранить, выйти, готово!
Длинный рассказ:
Переключиться на ветку, в которой было выполнено слияние.В моем случае это ветвь test
, и я пытаюсь удалить из нее ветку feature/analytics-v3
.
git revert
- это команда, которая отменяет любой коммит.Но при возврате коммита merge
есть неприятный трюк.Вам необходимо ввести флаг -m
, иначе он не будет выполнен.С этого момента вам нужно решить, хотите ли вы вернуть свою ветку и сделать ее похожей на parent1
или parent2
с помощью:
git revert <merge commit id> -m 1
(возвращаетна parent2
)
git revert <merge commit id> -m 2
(возвращается к parent1
)
Вы можете git войти эти родители, чтобы выяснить, какой путь вы хотите пойти, и это корень всей путаницы,