Прервать слияние Git

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

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

Ответ 1

если вы не совершаете, вы можете ввести

git merge --abort

так же, как предлагала командная строка.

Ответ 2

Если вы выполняете "git status" при конфликте слияния, первое, что git показывает, это то, как прервать слияние.

output of git status while having a merge conflict

Ответ 3

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

Git: как сменить слияние?

Git: как сменить слияние?

https://git-scm.com/blog/2010/03/02/undoing-merges.html

Поэтому, я думаю, я просто подведу некоторые из них:

  1. git revert <merge commit hash>
    Это создает дополнительный "revert" commit, говорящий, что вы сбрасываете слияние

  2. git reset --hard <commit hash *before* the merge>
    Эта история сброса до слияния. Если вы совершили после слияния, вам понадобится cherry-pick.

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