「リリース前後のフォルダを丸ごと比較して、変更されたファイルだけを一覧で確認したい」 「プロジェクトのフォルダ構成が複雑で、手作業でファイルを見比べるのが辛い」
そんな場面で力を発揮するのが、Windows定番の比較ツール「WinMerge(ウィンマージ)」のフォルダ比較機能です。2つのフォルダを指定するだけで、ファイルの追加・削除・変更を色分けして一覧表示してくれるため、数百ファイルの差分チェックも一瞬で完了します。
本記事では、WinMergeのフォルダ比較について、基本的な操作手順から、サブフォルダーの再帰比較、フィルターによる除外設定、フォルダ間のファイルコピー・同期まで、実務で役立つテクニックを網羅的に解説します。
確認した環境
- Windows 11(64bit)
- WinMerge Version 2.16.56.2
WinMergeでフォルダ比較を行う基本手順
WinMergeのフォルダ比較は、わずか3ステップで実行できます。
1. WinMergeを起動してフォルダを指定する
WinMergeを起動したら、メニューの「ファイル」→「開く」を選択します。
「ファイル」メニューを開き、「開く」をクリックします。

「選択」ダイアログが表示されたら、比較したい2つのフォルダを「1番目(左側)」と「2番目(右側)」にそれぞれ指定します。フォルダのパスは「参照」ボタンから選択するか、エクスプローラーからフォルダを直接ドラッグ&ドロップしても構いません。
下図のようなフォルダー選択ダイアログが表示されます。比較したい2つのフォルダーのパスをそれぞれ指定してください。

💡 ポイント 「サブフォルダーを含める」にチェックが入っていることを確認しておきましょう。これにより、フォルダの中にあるフォルダ(サブフォルダー)の中身まで再帰的に比較されます。
2. 比較を実行する
フォルダを指定したら、「比較」ボタンをクリックします。WinMergeがフォルダ内のすべてのファイルをスキャンし、比較結果が一覧表示されます。
比較が完了すると、下図のようにファイルの一覧と比較結果が表示されます。

3. 比較結果の見方を理解する
フォルダ比較の結果画面では、各ファイル・フォルダの状態がアイコンと背景色で直感的にわかるようになっています。
| 表示 | 意味 |
|---|---|
| 同一 | 左右のファイル内容が完全に一致 |
| 差異あり(黄色背景) | ファイルの内容に違いがある |
| 左のみ(グレー背景) | 左側のフォルダにしか存在しないファイル |
| 右のみ(グレー背景) | 右側のフォルダにしか存在しないファイル |
ファイル名をダブルクリックすると、そのファイルのテキスト差分画面が開き、具体的にどの行がどのように変更されたかを確認できます。
下図のように、左右のファイル内容が並んで表示され、差異のある行が色付きでハイライトされます。

差分のあるファイルだけを表示する方法
フォルダ内のファイル数が多い場合、同一ファイルまで表示されると目的の差分を見つけにくくなります。WinMergeでは、差異のあるファイルだけに絞り込んで表示することが可能です。
同一項目を非表示にする
メニューの「表示」→「同一項目の表示」のチェックを外します。
下図のように、差異のあるファイルと片方にしか存在しないファイルだけが表示されます。

これにより、差異のあるファイルと、片方にしか存在しないファイルだけが一覧に表示されるようになります。大量のファイルが入ったフォルダの比較でも、変更点をすばやく把握できるようになるため、必ず覚えておきたいテクニックです。
サブフォルダーを展開して全差分を確認する
フォルダ比較の結果画面では、サブフォルダーは初期状態では折りたたまれています。すべての差分を一覧で確認するには、メニューの「表示」→「サブフォルダーの展開」→「差異があるフォルダー」を選択します。
下図のように、サブフォルダー内のファイルも含めてすべての差分が一覧表示されます。

⚠️ 注意 サブフォルダーを展開しないと、フォルダ内部のファイル差分がレポート出力に含まれない場合があります。レポートを出力する前には、必ず対象フォルダーを展開しておきましょう。
フィルター機能で不要なファイルを除外する
プロジェクトフォルダを比較する際、.git ディレクトリや node_modules、ビルド成果物など、比較対象に含めたくないファイルやフォルダが存在することがよくあります。WinMergeのフィルター機能を使えば、これらを自動的に除外してクリーンな比較結果を得ることができます。
ファイルフィルターの設定方法
-
「ファイル」→「開く」で表示されるダイアログの下部にある「フィルター」欄の「選択」ボタンをクリックします。
下図のように、ダイアログ下部にある「フィルター」欄の「選択」ボタンをクリックします。

-
フィルター選択ダイアログが表示されます。WinMergeにはあらかじめ用意されたフィルターが多数含まれています。目的に合ったフィルターを選択するか、自分でカスタムフィルターを作成することもできます。
下図のようなフィルター選択ダイアログが表示されます。目的に合ったフィルターを選択してください。

.git ディレクトリを除外してフォルダ比較する方法
GitGit [ギット]ソースコードの変更履歴を管理する分散型バージョン管理システムで管理しているプロジェクトフォルダを比較すると、.git ディレクトリ内の大量の管理ファイルまで比較対象に含まれてしまい、結果が見づらくなります。以下の方法で .git を除外できます。
⚠️ 注意 フォルダー選択ダイアログの「フィルター」欄(
*.*と表示されている箇所)は、比較に含めるファイルパターンを指定する欄です。ここに\.gitと入力すると、.gitだけが表示されてしまうのでご注意ください。特定のフォルダーを除外するには、以下のフィルターファイルを使用します。
方法1:組み込みフィルター「Exclude Source Control」を使う
WinMergeには .git や .svn などのバージョン管理フォルダーを除外する組み込みフィルターがあらかじめ用意されています。
- 「ファイル」→「開く」でフォルダー選択ダイアログを開く
- 「フィルター」欄の右にある「選択」ボタンをクリック
- フィルター一覧から「Exclude Source Control」を選択して「OK」をクリック
- 「比較」をクリックする
これだけで .git、.svn、.hg などのバージョン管理ディレクトリが自動的に除外されます。
方法2:カスタムフィルターファイルを作成する
node_modules やビルド出力など、プロジェクト固有のフォルダーも除外したい場合は、カスタムフィルターファイル(.flt)を作成するのがおすすめです。
- メニューの「ツール」→「フィルター」を選択
- 「新規」ボタンをクリック
- 以下のように記述して保存する
## This is a WinMerge filter filename: プロジェクト用除外フィルターdesc: .git、node_modules、ビルド出力を除外
d: \\\.git$d: \\node_modules$d: \\dist$d: \\build$- 保存したら、「インストール」ボタンをクリックして、フォルダー選択ダイアログの「選択」ボタンから作成したフィルターを選択して比較を実行する
💡 フィルターファイルの書式について
d:で始まる行は ディレクトリ(フォルダー) を除外する正規表現パターンですf:で始まる行は ファイル を除外する正規表現パターンです- 一度作成したフィルターは次回以降も「選択」ボタンから呼び出せるため、毎回入力する手間が省けます
💡 ポイント フィルターの設定パターンには正規表現が利用可能です。複数のパターンを組み合わせることで、プロジェクト固有の不要ファイルを柔軟に除外できます。
フォルダ間のファイルコピー・同期
WinMergeのフォルダ比較機能は、単に差分を確認するだけでなく、フォルダ間でファイルをコピーして同期する用途にも活用できます。
ファイルを左から右(または右から左)にコピーする
比較結果の一覧で、コピーしたいファイルを選択(複数選択可)し、右クリックメニューから以下の操作が行えます。
- 「コピー>右側から左側」:右側のファイルを左側のフォルダにコピー
- 「コピー>左側から右側」:左側のファイルを右側のフォルダにコピー
下図のように、右クリックメニューの「コピー」からコピー方向を選択できます。

⚠️ 注意 コピー操作は即座に実行され、上書きされたファイルは元に戻せません。重要なファイルを扱う場合は、事前にバックアップを取っておくことを強くおすすめします。
複数ファイルの一括コピー
Ctrlキーを押しながらファイルをクリックすることで複数選択できます。また、Ctrl + Aで全ファイルを選択することも可能です。選択後に右クリックメニューからコピー方向を選べば、 一括でファイルのコピー(同期) が実行されます。
これにより、例えば「テスト環境のフォルダから本番環境のフォルダへ、変更ファイルだけを一括コピーする」といった作業がWinMerge上で完結します。
コマンドラインからフォルダ比較を実行する方法
WinMergeはGUIGUI [ジーユーアイ / グーイ]Graphical User Interface。グラフィカルな操作画面ツールとしてだけでなく、コマンドラインから起動することもできます。バッチファイルやスクリプトに組み込むことで、定型的なフォルダ比較作業を自動化できます。
基本的なコマンド構文
WinMergeU.exe /r "C:\folder1" "C:\folder2"| オプション | 説明 |
|---|---|
/r | サブフォルダーを含めて再帰的に比較 |
/e | Escキーで閉じられるようにする |
/u | 最近使用した項目に追加しない |
/wl | 左側を読み取り専用で開く |
/wr | 右側を読み取り専用で開く |
/f "*.txt" | フィルターパターンを指定 |
使用例:特定の拡張子のみを再帰的に比較する
WinMergeU.exe /r /f "*.java" "C:\project\old" "C:\project\new"上記のコマンドは、oldフォルダとnewフォルダを再帰的に比較し、.javaファイルのみを対象にします。コードレビューや差分チェックの自動化に非常に便利です。
フォルダ比較でよくあるトラブルと対処法
比較結果が「差異あり」なのに中身が同じに見える
改行コード(CR/LF と LF)の違いや、末尾の空白・タブの違いが原因で差異として検出されることがあります。これを無視したい場合は、以下の設定を行います。
-
メニューの「編集」→「設定」を開く
メニューの「編集」をクリックし、「設定」を選択します。

-
左側の一覧から「比較」→「一般」を選択
下図のようなオプション画面が表示されます。左側の一覧から「比較」→「一般」を選択してください。

-
「空白>すべて無視」や「改行文字の違いを無視(Windows/Unix/Mac)」にチェックを入れる
下図のように、「すべて無視」や「改行文字の違いを無視する」にチェックを入れます。

ファイル数が多すぎて比較に時間がかかる
大規模なフォルダを比較する場合、ファイル数が数万件を超えると比較処理に時間がかかることがあります。以下の対策を試してみてください。
- フィルター機能で不要なファイルを除外する(
.git、node_modules等) - サブフォルダーを含めない設定で、まず最上位フォルダだけを比較する
- 「クイックコンテンツ」比較方式を選択して、ファイルサイズと日付による高速比較を行う
💡 WinMergeをもっと使いこなしたい方へ
フォルダ比較の結果から差分レポートをHTMLHTML [エイチティーエムエル]HyperText Markup Language。Webページの構造を記述する言語で出力する方法について、以下の記事で詳しく解説しています。コードレビューのエビデンス提出などにぜひご活用ください。

【WinMerge】再帰的に差分のみのレポートを作成する方法
WinMergeで差分のあるファイルのみを抽出し、レポート出力する方法を紹介します。初心者でも迷わず実践できるようインストールから設定・操作手順を丁寧に解説します。
まとめ:WinMergeのフォルダ比較で差分チェックを効率化しよう
WinMergeのフォルダ比較機能を使えば、手作業では困難な大量ファイルの差分チェックが簡単かつ正確に行えます。本記事のポイントを振り返りましょう。
- 基本操作:2つのフォルダを指定して「比較」をクリックするだけ
- 差分の絞り込み:「同一項目の表示」を外して差分ファイルだけに集中
- フィルター活用:
.gitやnode_modulesなどの不要ファイルを自動除外 - ファイル同期:比較結果からフォルダ間のファイルコピーも可能
- コマンドライン:バッチファイルで定型的な比較作業を自動化
WinMergeはフォルダ比較以外にも、Word・Excel・PDFといった各種ファイルの比較にも対応しています。WinMergeの全機能を網羅した完全ガイドはこちらをご覧ください。

【完全ガイド】WinMergeの使い方を徹底解説!
Windowsの定番比較ツール「WinMerge」の使い方を徹底解説!基本的なインストール手順やテキスト・フォルダの比較から、Word・Excel・PDFといった各種ファイルの比較プラグインの導入・設定手順まで網羅。業務効率を劇的に向上させたい方必読の完全ガイドです。
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5
マウスを捨て、キーボードだけで操作する極意。慣れれば本当に仕事が劇的に早くなります。