コンテンツにスキップ
GitTree
Git ガイド1 分で読みました

Git マージまたはリベースを中止する方法

競合によりマージが停止したため、マージを終了したいとします。 git merge --abort は、最初の場所に戻ります。ここでは、停止した各操作に対する適切なコマンド、各操作が保持する内容、および操作がすでに終了した後に行うべき処理を示します。

作者 Kodmora

GitTree の背後にあるソフトウェア ハウス

更新されました
  • マージ
  • リベース
  • 元に戻すと回復
  • マージ競合
このページでは

進行中のマージをキャンセルするには、`git merge --abort` を実行します。 リベースをキャンセルするには、git rebase --abort を実行します。どちらもブランチを開始前の正確な場所に戻します。これらは動作が停止している間のみ機能します。マージがコミットされると、中止するものは何もないため、代わりに git reset または git revert が必要になります。

どのコマンドがどの操作を中止しますか?

最初に git status を実行します。最初の行には進行中の内容が示されており、どのコマンドが必要であるかがわかります。

各操作の中止コマンド
何が進行中なのかキャンセルしてください続けてください
マージgit merge --abortgit commit または git merge --continue
リベースgit rebase --abortgit rebase --continue または --skip
チェリーピックgit cherry-pick --abortgit cherry-pick --continue
元に戻すgit revert --abortgit revert --continue
git am からのパッチgit am --abortgit am --continue

マージを中止するにはどうすればよいですか?

git status
# You have unmerged paths.

git merge --abort
git status
# nothing to commit, working tree clean

プルはフェッチの後にマージされるため、これは競合で停止した git pull の後でも機能します。プルがリベースに設定されている場合は、代わりに git rebase --abort を使用してください。

リベースを中止するにはどうすればよいですか?

git rebase --abort

一部のコミットがすでに再生されている場合でも、ブランチはリベースが開始される前の場所に戻ります。デタッチされた HEAD でこれまでに再生されたコミットを停止して保持するには、git rebase --quit を使用して、何を保持するかを決定します。コミットが単に必要なくなった場合、git rebase --skip はそれを削除して続行します。

Git が「中止するマージはありません」と表示されるのはなぜですか?

fatal: There is no merge to abort (MERGE_HEAD missing).
  • マージはすでに終了しています。 git log -3 を読んでください。マージコミットがある場合は、以下に示すように元に戻します。
  • これはリベースまたはチェリーピックです。 git status は実際のオペレーションに名前を付けます。テーブルからの中止を使用します。
  • 競合は `git stash pop` から発生しました。 これはマージではありません。それらをクリアするには、git reset --merge を実行します。隠し場所は保管されるため、何も失われることはありません。

すでに終了したマージを元に戻すにはどうすればよいですか?

プッシュしていない場合は、ブランチを元に戻します。 Git はマージ前の位置を ORIG_HEAD に保存します。

git reset --hard ORIG_HEAD

このコマンドはコミットされていない変更を破棄するため、最初に git status を確認してください。 プッシュした場合は、マージ コミットを取り消す方法 で説明されているように、コミットを取り消して履歴をそのまま保持します。

git revert -m 1 <merge-sha>

すでに終了したリベースを元に戻すにはどうすればよいですか?

reflog でリベース前のコミットを見つけて、それにリセットします。

git reflog
# 7c1d9ab HEAD@{4}: rebase (start): checkout main
# 3e52f10 HEAD@{5}: commit: add search box

git reset --hard HEAD@{5}

rebase (start) という行の直前のエントリを選択します。 リセット、リベース、コミットを元に戻す で詳しく説明します。

競合を中止するか解決する必要がありますか?

間違ったブランチをマージした場合、コミットされていない作業がある場合、またはアプローチを再考したい場合は中止します。中止しても費用はかからず、いつでもやり直すことができます。衝突が少なく、双方の立場を理解できる場合に解決してください。 マージ競合を解決する方法 は、マーカーを読み取る方法を示しています。

GitTree でマージまたはリベースを中止する方法

  1. バナーを読む

    グラフの上のバナーには、機能/検索を開発にマージする などの操作の名前と、残っている競合の数が表示されます。

  2. 中止を選択してください

    バナー内の 中止… を押します。気が変わった場合は、解決 と 続行 を横に置いてください。

  3. 確認する

    操作を中止しますか? ダイアログには、何をドロップするかが表示されます。 中止を押します。 GitTree は最初に復元スナップショットに削除した内容を保存するため、元に戻す で元に戻すことができます。

グラフ上のバナーから GitTree で停止したマージを中止します。
グラフ上のバナーから GitTree で停止したマージを中止します。GitTree はデモ リポジトリとのインターフェイスです。

すべてのケースについては 操作を続行、スキップ、または中止する を参照し、それを実践するには レッスンを続行、スキップし、中止する を参照してください。

よくある質問

git merge --abort は変更を削除しますか?

マージの変更と、これまでに行った競合解決が削除されます。マージ前にコミットした作業は安全です。マージ前にコミットされていない変更はきれいに戻らない可能性があるため、マージ前にコミットまたはスタッシュしてください。

git merge --abort と git replace --merge の違いは何ですか?

git merge --abort はマージから抜け出す通常の方法であり、マージの進行中に git reset --merge が実行されます。 git stash pop など、他のものから競合が発生した場合は、git reset --merge を直接使用します。

git pull を中止するにはどうすればよいですか?

競合により停止したプルはマージまたはリベースです。 git status を実行してどれを確認し、git merge --abort または git rebase --abort を使用します。

いくつかの競合を解決した後でマージを中止できますか?

はい、コミットするまでは可能です。 git merge --abort は解像度も破棄するため、再度マージする場合は最初から開始します。 git rerere をオンにすると、Git にそれらが記憶されます。

git rebase --quit は何をしますか?

HEAD を元に戻さずにリベースを停止し、これまでに再生されたコミットをそのまま残します。 git rebase --abort は、ほぼすべての場合に必要なものです。

情報源

他の製品に関する申し立ては、2026年11月7日 の公式ページと照合して確認されました。価格と機能は変更されます。ベンダーのページが真実の情報源です。