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

マージコンフリクトの状況を表示する

  「git status」コマンドは、「マージコンフリクト」発生時に実行すると、「マージコンフリクト」の状況を表示します。

  どのファイルで「マージコンフリクト」が発生しているのか、どのような「マージコンフリクト」が発生しているのか、確認することができます。

マージコンフリクトの発生と状況の確認

  ここでは例として、「マージコンフリクト」を発生させ、「マージコンフリクト」の状況を確認します。

  1.ブランチの確認

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


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

  2.ブランチの状態

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


  3.マージを行う

    以下のように「master」ブランチに「fix」ブランチをマージすると、「マージコンフリクト」が発生します。


    「マージコンフリクト」は、「common.txt」ファイルで発生したと出力されています。

  4.ワーキングディレクトリーの確認

    「ワーキングディレクトリー」を確認すると、以下のようになっています。


    「common.txt」ファイルは、「マージコンフリクト」が発生したファイルです。
    「fix.txt」ファイルは、「fix」ブランチにのみ存在していたファイルです。
    「master.txt」ファイルは、「master」ブランチにのみ存在しているファイルです。

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

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


  6.マージコンフリクトの状態

     「ワーキングディレクトリー」の状態を確認し、「マージコンフリクト」の状態を確認します。

    「端末」から、以下のコマンドを実行します。
    コマンドの詳細は、「ワーキングディレクトリーにあるファイルの状態を表示するコマンドの説明」を参考にしてください。

git status


    上記から、「fix.txt」ファイルは新規に追加されるファイルであることが分かります。
    「common.txt」ファイルは、「マージコンフリクト」が発生したファイルであることが分かります。

ファイルの状態の見方

  「git status」コマンドで表示されるファイルの状態の見方です。
  ファイルの状態により、以下の4つのカテゴリーに分けて表示されます。

  1. Changes to be committed
  2. Changes not staged for commit
  3. Untracked files
  4. Unmerged paths

  「1.」〜「3.」は、リンク先を参考にしてください。

4.Unmerged paths

  「マージコンフリクト」が発生しているファイルの一覧が表示されます。
  「マージコンフリクト」の内容により、以下のカテゴリーに分かれます。

  4-1.both modified

    「マージベース」にあるファイルと、マージされるブランチ(HEAD)にあるファイルと、マージするブランチにあるファイルを「3ウェイマージ」した結果、変更箇所がコンフリクトしているファイルです。

    「両方変更されている」の「両方」とは、マージされるブランチとマージするブランチのことを指します。

    ユーザーは、コンフリクトしている箇所を編集し、コンフリクトの解消を行います。

  4-2.both added

    マージされるブランチ(HEAD)にあるファイルと、マージするブランチにあるファイルをマージした結果、変更箇所がコンフリクトしているファイルです。

    「4-1.」と異なり、 「マージベース」に同じファイルが存在しないケースです。

    ユーザーは、コンフリクトしている箇所を編集し、コンフリクトの解消を行います。

  4-3.deleted by them

    「マージベース」とマージされるブランチ(HEAD)に存在するファイルが、マージするブランチからは削除されているファイルです。

    ユーザーは、このファイルを削除するか、それとも削除せずファイルを残すか、判断します。

  4-4.deleted by us

    「マージベース」とマージするブランチに存在するファイルが、マージされるブランチ(HEAD)では削除されているファイルです。
    
    ユーザーは、このファイルを削除するか、それとも削除せずファイルを残すか、判断します。

  4-5.added by us

    マージされるブランチ(HEAD)にのみ存在するファイルです。
    「git merge」コマンドでマージする場合、このファイルは影響を受けません。

  4-6.added by them

    マージするブランチにのみ存在するファイルです。
    「git merge」コマンドでマージする場合、このファイルは自動的に「ステージングエリア」に追加されます。

  4-7.both deleted

    マージされるブランチ(HEAD)及び、マージするブランチから削除されたファイルです。    
    「git merge」コマンドでマージする場合、このファイルは自動的に削除されます。


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