回答:
最新のGit:
git merge --abort
これにより、作業コピーがマージ前の状態にリセットされます。つまり、マージ前にコミットされていない変更を復元する必要がありますが、常に確実に復元できるとは限りません。通常は、コミットされていない変更をマージしないでください。
バージョン1.7.4より前:
git reset --merge
これは古い構文ですが、上記と同じです。
バージョン1.6.2より前:
git reset --hard
これにより、コミットされていないマージを含む、コミットされていないすべての変更が削除されます。この動作は、上記のコマンドをサポートする新しいバージョンのGitでも役立つ場合があります。
git reset --merge
、より新しいバージョンでも使用する必要があります。私はgit 2.2.1 git merge --abort
でgit reset --merge
成功した(そして正しいことをする)エラーを出しました(変更を加えていません)。
git merge --abort
する必要があることがわかりましたgit reset --merge
。
git merge --abort
動作しますが、デタッチされたHEAD状態でチェックアウトし、ファイルの1つが「両方が変更された」状態である状況になりました。私はすべてを破棄してブランチに戻りたかったのでgit reset --hard
、git merge --abort
中止する必要があるマージがないと伝えなければなりませんでした(MERGE_HEADがありません)。
git merge --abort
は、以前の状態に戻すことができない場合があります。その場合、「古い構文」でgit reset --hard
うまくいきます。
実際に、それは価値が気付かあるgit merge --abort
だけに相当しgit reset --merge
、与えられたMERGE_HEAD
存在です。これはgit help for mergeコマンドで読むことができます。
git merge --abort # is equivalent to git reset --merge when MERGE_HEAD is present.
何がある場合に失敗し、マージした後、MERGE_HEAD
失敗したマージはして元に戻すことはできませんgit reset --merge
必ずしもではなくgit merge --abort
、彼らは同じもののために古いものと新しい構文ではないだけですので。
個人的にはgit reset --merge
、毎日の仕事ではるかに役立つと思います。
git stash apply
間違ったブランチで始まるマージを持っていて、トリックをしている間にgit merge --abort
何もしませんでした(いいえMERGE_HEAD
)git reset --merge
。
git merge --abort
が新しいコマンドであるgit reset --merge
と言っているのを見てきました。@ geomasterと同じ問題に遭遇しました。これは非常に役に立ちました!
コマンドでマージを元に戻すには、2つの方法があります。
git merge --abort
または
コマンドで一時的に以前のコミット状態に戻ることができます
git checkout 0d1d7fc32
ソースツリー
マージをコミットしない場合は、別のブランチ(=チェックアウト)をダブルクリックし、sourcetreeがすべての変更の破棄について尋ねたら、同意します