私は支店mybranch1
にいます。 mybranch2
はmybranch1
から分岐し、mybranch2
に変更が加えられました。
それから、mybranch1
にしている間に、私はgit merge --no-commit mybranch2
をしました。それはマージ中に衝突があったことを示しています。
mybranch1
が以前の状態に戻るように、すべてを破棄(merge
コマンド)したいのです。どうすればよいのかわかりません。
最新のGit:
git merge --abort
これは作業コピーをマージ前の状態にリセットしようとします。これは、コミット前からコミットされていない変更を復元する必要があることを意味します。一般的に、とにかくコミットされていない変更とマージするべきではありません。
バージョン1.7.4より前:
git reset --merge
これは古い構文ですが、上記と同じです。
バージョン1.6.2より前
git reset --hard
コミットされていないマージを含む、コミットされていない変更をすべて削除します。上記のコマンドをサポートする新しいバージョンのGitでもこの動作が役に立つことがあります。
実際、git merge --abort
が存在する場合、git reset --merge
はMERGE_HEAD
とのみ同等であることに注意してください。これは、マージコマンドのgitヘルプで読むことができます。
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を使っていると仮定すると、
git merge --abort