- IT総合
-
2025-08-28
開発を進めていると、複数のブランチで同じファイルを修正してしまい、マージのときに競合が発生することがあります。
「ブランチAとブランチBで、修正ファイルが被っているかどうかを事前に知りたい」──そんなときに役立つ方法を紹介します。
変更ファイル一覧を出力する
まず、それぞれのブランチで どのファイルが変更されたか を一覧にします。
# branch-a の変更ファイル一覧を保存 git diff --name-only main..branch-a > /tmp/a.txt # branch-b の変更ファイル一覧を保存 git diff --name-only main..branch-b > /tmp/b.txt
-
git diff --name-only main..branch-a
は
「main と branch-a の差分に含まれるファイル名」だけを出力します。
共通ファイルを抽出する
次に、2つの一覧を突き合わせて「両方に出てくるファイル」だけを取り出します。
comm -12 <(sort /tmp/a.txt) <(sort /tmp/b.txt)
ここで登場する comm コマンドは「2つのソート済みファイルを比較する」ものです。
オプションを細かく見ていきましょう。
