Menu
Coddy logo textTech

Git: マージを中止する

最終更新

git merge が競合に遭遇し、それらを解決するよりも引き返したい場合、git merge --abort はマージをキャンセルし、ブランチを開始前とまったく同じ状態に復元します。おかしくなったマージからの安全な脱出口です。

すでに完了したマージは別の方法で取り消します - 下記を参照してください。これらをターミナルプレイグラウンドで試してみましょう - ブラウザ内の本物のシェルです。

git merge --abort は競合したマージを取りやめ、ブランチをマージ開始前の状態に戻します。

構文

CommandWhat it does
git merge --abort競合したマージをキャンセルし、マージ前の状態に復元する
git reset --merge古い同等の方法 - マージを中止してリセットする
git merge --quitマージから抜けるが、作業ツリーはそのまま保持する

すでに完了したマージを取り消す

中止とは異なる - マージコミットはすでに存在する。

SituationCommand
マージはローカルで、プッシュされていないgit reset --hard ORIG_HEAD
マージはすでにプッシュされているgit revert -m 1 <merge-hash>

Git マージ中止に関するFAQ

進行中のマージをキャンセルするには?
git merge --abort を実行します。競合のためにマージが停止し、それらを解決したくない場合、これは操作全体をキャンセルし、ブランチと作業ツリーをマージ開始前とまったく同じ状態に戻します。
git merge --abort と git reset --merge の違いは?
両者は本質的に同じ仕事をします - 進行中のマージをキャンセルし、マージ前の状態を復元します。git merge --abort は現代的で、この目的のために作られたコマンドです。git reset --merge は今でも動作する古い方法です。分かりやすさのために git merge --abort を優先してください。
すでに完了したマージを取り消すには?
マージコミットがすでに存在するため、これは中止ではありません。マージがローカルのみの場合、git reset --hard ORIG_HEAD がブランチをマージ前の位置に戻します - HEAD~1 では正しく戻れない fast-forward の後でも機能します。コミットしていない作業は破棄されるので、先に git status を確認してください。すでにマージをプッシュしている場合は、git revert -m 1 <merge-hash> を使って、共有された履歴を書き換えずにマージを打ち消します。
マージを中止すると他の変更が失われますか?
git merge --abort はマージ直前の状態を復元するため、マージの変更は破棄されますが、自分自身のコミット済みの作業はそのまま残ります。マージを開始する前にコミットしていない変更があった場合は、先にコミットするか stash してください - 中止はマージ前のコミット状態を復元します。
これをオンラインで練習できますか?
はい。ターミナルプレイグラウンドを開いて、ブラウザ内の本物のシェルで git merge --abort を実行できます - インストールは不要です。Coddy の無料のインタラクティブな Git コースでは、マージと競合の解決も段階的に扱っています。
Coddy programming languages illustration

Coddy で Git を学ぼう

始める