Как откатить merge request
Чтобы откатить слияние (merge) в Git, вы можете использовать команду git revert
для создания нового коммита, который отменяет изменения, внесенные слиянием.
Используя команду git log
для просмотра истории коммитов и нахождения хеша (SHA) коммита слияния, который вы хотите откатить.
В выводе находим необходимый МР. Пример вывода может выглядеть вот так:
commit 8e0febacb2acb15aa615c7c5564e2e9ab1595be3 (HEAD -> main, origin/main)
Merge: 6e314de 8aac892
Author: Sergey Golubev <113093924+skyndfly@users.noreply.github.com>
Date: Mon Sep 16 15:23:45 2024 +0300
[main d57db25] Revert "Merge pull request #61 from skyndfly/#54"
14 files changed, 59 insertions(+), 125 deletions(-)
delete mode 100644 database/migrations/2024_08_28_205956_add_user_to_articles_table.php
Здесь нас интересует строчка 8e0febacb2acb15aa615c7c5564e2e9ab1595be3
.
Далее нам необходимо выполнить комнаду git revert -m 1 8e0febacb2acb15aa615c7c5564e2e9ab1595be3
.
Здесь -m 1
указывает, что вы хотите сохранить изменения из первой родительской ветки (обычно это ветка, в которую вы сливались).
После этого откроется редактор nano, в котором необходимо ввести сообщение коммита. После чего прожать Ctrl + O и Ctrl + X чтобы сохранить и выйти из редактора nano.
Далее можно уже через IDE сделать пуш ветки.
Если в процессе отката возникнут конфликты, Git сообщит вам об этом. Вам нужно будет разрешить конфликты вручную, а затем выполнить:
git add .
git commit