kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

Octopusマージストラテジーでマージを中止する

  「Octopusマージストラテジー」で「マージコンフリクト」が発生すると、マージに失敗します。
  マージに失敗した場合、マージを中止し、マージ前の状態に戻す必要があります。
  ここでは、マージの中止方法を紹介します。

マージコンフリクトが発生する状況

  まず、「マージコンフリクト」が発生する状況を見てみます。

  1.ブランチの確認

    現在のブランチ構成を確認すると、以下のようになっています。
    現在のブランチは、「master」ブランチであることが分かります。
    同様に、「HEAD」は「master」ブランチを指していることが分かります。



    ここでは例として、「master」ブランチに「fix」ブランチと「new」ブランチをマージします。

  2.ブランチの状態

    ブランチの状態を図にすると、以下のようになります。


    ここでは、「マージコンフリクト」が発生する「common.txt」ファイルに着目します。

  3.common.txtファイルの中身

    各ブランチの「common.txt」ファイルの中身は、以下のようになっています。

    masterブランチ



    fixブランチ



    newブランチ




  4.マージを行う

    「Octopusマージストラテジー」でマージします。
    コマンドの詳細は、「ファイルのマージを行うコマンドの説明」を参考にしてください。

git merge --verbose --strategy=octopus fix new


  5.マージコンフリクトの発生

    以下のように、「common.txt」ファイルで「マージコンフリクト」が発生します。


  6.ワーキングディレクトリーの状態

    「ワーキングディレクトリー」の状態を確認すると、「common.txt」がマージされていない状態になっています。


  7.common.txtファイルの中身

    「マージコンフリクト」が発生した「common.txt」ファイルの中身を見ると、以下のようにコンフリクトが発生した箇所に、「コンフリクトマーカー」が挿入されています。


    「コンフリクトマーカー」には、ブランチ名が出力されておらず、どのファイルの変更箇所が衝突しているのか、わかりづらい状態です。

    また、中途半端にマージされている状態なので、マージを中止する必要があります。
    上記の例では、「new」ブランチがマージされていない状態です。

    また、この状態でコミットを行っても、「マージコミット」になりません。

マージを中止する

  マージを中止して、マージ前の状態に戻します。

  1.マージの中止

    「端末」から、以下のコマンドを実行します。

git reset --hard HEAD


  2.リセット完了

    以下のように、マージが中止され、マージ前の状態に戻ります。



関連コンテンツ
同一カテゴリーの記事
コメント
オプション