Я работаю над проектом, используя Git в качестве VCS. У меня есть ветка xyz, вырезанная из основной ветки мастера. Поработав некоторое время, я зафиксировал свой код и взял ветку mainline.

Тяга была в порядке. Затем я объединил код с мастером. После слияния в некоторых файлах возникли проблемы. Я не фиксировал код после слияния. Может ли кто-нибудь рассказать, как я могу прервать это слияние и привести мою ветку, в которой я работаю в настоящее время, в состояние, в котором она была до того, как я ее слил?

Salman Kazmi

Ответов: 3

Ответы (3)

, пока вы не зафиксировали, вы можете набрать

git merge --abort

так же, как и в командной строке.

По правде говоря, существует множество ресурсов, объясняющих, как это сделать, уже в сети:

Git: как выполнить обратное слияние коммита?

Git: как выполнить обратное слияние коммита?

Отмена слияния, из блога Git (получено с Wayback Machine на archive.org)

Итак, я просто резюмирую некоторые из них:

  1. git revert <хеш фиксации слияния>
    Это создает дополнительную фиксацию «отката», в которой говорится, что вы отменили слияние

  2. git reset --hard <хеш фиксации * перед * слиянием>
    Это сбросит историю до того, как вы выполнили слияние. Если у вас есть коммиты после слияния, вам нужно будет выбрать их, чтобы потом.

Но, честно говоря, этот справочник здесь лучше всего, что я могу объяснить, с диаграммами! :)

Если вы выполните команду «git status» при конфликте слияния, первое, что покажет git, - это как отменить слияние.

output of git status while having a merge conflict

2022 WebDevInsider