マージコンフリクトの状況を、ショートフォーマットで表示する
「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.マージコンフリクトの状態
「ワーキングディレクトリー」の状態を確認し、「マージコンフリクト」の状態を確認します。コマンドのオプションは、以下のオプションを指定します。
ショートオプション | ロングオプション |
---|---|
-s | --short |
「端末」から、以下のコマンドを実行します。
コマンドの詳細は、「ワーキングディレクトリーにあるファイルの状態を表示するコマンドの説明」を参考にしてください。
ポイントは、赤字の箇所です。
git status --short
上記から、「fix.txt」ファイルは新規に追加されるファイルであることが分かります。
「common.txt」ファイルは、「マージコンフリクト」が発生したファイルであることが分かります。
ファイルの状態の見方
「git status」コマンドで表示されるファイルの状態の見方です。「マージコンフリクト」が発生していないファイルの状態の見方については、「ワーキングディレクトリーにあるファイルの状態を、ショートフォーマットで表示する」を参考にしてください。
マージコンフリクトが発生したファイルのショートフォーマット
「マージコンフリクト」が発生したファイルは、以下のフォーマットで表示されます。マージされるブランチの ファイルの状態(HEAD) |
マージするブランチの ファイルの状態 |
ファイル名 |
また、「マージコンフリクト」が発生したファイルは、「マージするブランチの
ファイルの状態」に表示される文字が、赤色の文字で表示されます。
UU(both modified)
「マージベース」にあるファイルと、マージされるブランチ(HEAD)にあるファイルと、マージするブランチにあるファイルを「3ウェイマージ」した結果、変更箇所がコンフリクトしているファイルです。「両方変更されている」の「両方」とは、マージされるブランチとマージするブランチのことを指します。
ユーザーは、コンフリクトしている箇所を編集し、コンフリクトの解消を行います。
AA(both added)
マージされるブランチ(HEAD)にあるファイルと、マージするブランチにあるファイルをマージした結果、変更箇所がコンフリクトしているファイルです。「UU」と異なり、「マージベース」に同じファイルが存在しないケースです。
ユーザーは、コンフリクトしている箇所を編集し、コンフリクトの解消を行います。
UD(deleted by them)
「マージベース」とマージされるブランチ(HEAD)に存在するファイルが、マージするブランチからは削除されているファイルです。ユーザーは、このファイルを削除するか、それとも削除せずファイルを残すか、判断します。
DU(deleted by us)
「マージベース」とマージするブランチに存在するファイルが、マージされるブランチ(HEAD)では削除されているファイルです。ユーザーは、このファイルを削除するか、それとも削除せずファイルを残すか、判断します。
AU(added by us)
マージされるブランチ(HEAD)にのみ存在するファイルです。「git merge」コマンドでマージする場合、このファイルは影響を受けません。
UA(added by them)
マージするブランチにのみ存在するファイルです。「git merge」コマンドでマージする場合、このファイルは自動的に「ステージングエリア」に追加されます。
DD(both deleted)
マージされるブランチ(HEAD)及び、マージするブランチから削除されたファイルです。「git merge」コマンドでマージする場合、このファイルは自動的に削除されます。