2017-05-18 13 views
15

私はGitをVCSとして使っているプロジェクトに取り組んでいます。私はmasterのmainlineブランチからブランチxyzを切り取った。しばらく働いた後、私は自分のコードをコミットし、支店のメインラインを引きました。Git Mergeを中止する

プルは正常でした。私はマスターとコードをマージしました。マージ後、特定のファイルに問題がありました。私はマージ後にコードをコミットしていません。誰かが私がこのマージを中止して、現在私がそれをマージする前の状態になっている場所に私の支店を持っていく方法について案内してくれますか?

+1

の可能性のある重複した[コミット以前にGitリポジトリを戻す方法?](http://stackoverflow.com/questions/4114095/how-to-revert-git-repository-to-a- previous-commit) – mttdbrd

+0

ブランチの前回のコミットを復元できませんか? –

+0

[矛盾を伴うgitマージを元に戻す方法]の可能な複製(0120-385-002)を参照してください。 –

答えて

57

限り、あなたはあなたがコマンドラインが提案同じよう

git merge --abort 

を入力することができますコミットしていなかったとして。

2

真実は、ウェブ上で既に出て、これを行う方法を説明する多くの、多くのリソースがあると言われる。

Git: how to reverse-merge a commit?

Git: how to reverse-merge a commit?

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

だから私は、私はちょうどますねこれらのいくつかを要約する:

  1. git revert <merge commit hash>
    は、これは、あなたがマージをした前にマージ

  2. git reset --hard <commit hash *before* the merge>
    このリセット履歴を元に戻したと言ってコミット「元に戻す」余分に作成します。マージ後にコミットした場合は、後でcherry-pickにする必要があります。

正直なところ、thisガイドは私が説明できるものよりも優れています。 :)

1

マージの競合が発生している間に「git status」を実行した場合、最初にgitがマージを中止する方法を示しています。

output of git status while having a merge conflict