フォルダの中身を確実に比較する方法を探しているなら、この記事はきっと役に立ちます。
私自身、その方法を知らなかったせいで納品事故を起こした側の人間です。
「反映されてないですよね?」という朝

金曜の夜に納品して、土曜の朝にSlackの通知で目が覚めました。
「すみません、修正が反映されてないですよね?」
アップロード対象のフォルダを開いてみると、`style.css`、`style_old.css`、`style_v2.css`の3ファイルが並んでいました。
本番環境が参照していたのは古い方。
レイアウトが崩れたままの状態で、クライアントは土曜の午前にサイトを確認していたわけです。
正直、血の気が引きました。
確認はしたんです。
目視で。
チェックリストも使って、ファイル名もソートして。
でも3つ並んだCSSのどれが最新かを「目」で判断した時点で、ミスの種はもう埋まっていました。
なぜ目視確認は崩壊するのか

目視確認が甘いという話ではありません。
注意力に依存する確認方法には、構造的な限界があるという話です。
ファイルが10個なら問題ない。
でも30個、50個と増えたとき、2画面に並べて見比べる作業は「確認」ではなく「作業」になります。
深い階層に潜ったファイルは視界に入りません。
更新日時が1秒違うだけの差分には気づけない。
テキスト比較の基本とdiffの仕組みを理解していても、ファイル単体ではなくフォルダ単位になった瞬間、人間の注意力は急激にスケールしなくなります。
チェックリストを増やせば解決するかというと、そうでもありません。
リスト自体が20行を超えると「チェックを埋める作業」が目的化して、肝心の中身を見なくなる。
経験がある人ほど「自分のルーティンで大丈夫」と思い込みます。
あのとき私もそうでした。
目視確認は「丁寧にやっている」感覚を与えてくれます。
でもそれは丁寧さではなく、ただのリスクです。
フォルダ比較ツールを初めて使った日

あの納品事故のあと、同僚に「フォルダ比較ツール使ってないの?」と言われました。
正直な先入観として、フォルダ比較はGitやコマンドラインの世界だと思っていたんです。
`diff -rq`みたいなコマンドを打つ、開発者寄りの作業だと。
違いました。
WinMergeを入れて、ローカルとアップロード先のフォルダを左右に指定しただけ。
追加・削除・更新されたファイルが色分けで一覧表示されました。
サブフォルダも再帰的に全部拾ってくれます。
「なんで今まで使ってなかったんだろう」。
まじでそう思いました。
用途別のdiffツール選び方で紹介されているとおり、GUIで直感的に使えるフォルダ比較ツールは無料のものだけでも複数あります。
コマンドを覚える必要も、Gitの知識も要りません。
差分リストが救ったミス未遂

導入して最初の週に、さっそく助けられました。
テンプレートの大量修正を終えて、本番フォルダへコピーする直前にフォルダ比較をかけたところ、差分リストに見覚えのないPNGファイルが赤く表示されていました。
テスト用に仮置きした画像が本番フォルダに残っていたんです。
目視では完全にスルーしていた。
画像フォルダの中に1枚余計なファイルが混ざっていても、人間はまず気づきません。
ファイル名が`banner_test_02.png`だろうと`sample.png`だろうと、目でスキャンするだけでは拾えない。
差分リストは「あるはずのないファイル」を無感情に指摘してくれます。感情がないぶん、見逃しもありません。
この体験を境に、納品前のフォルダ比較はフリーランスコーダーのファイル比較ワークフローで紹介しているような業務フローの一部として固定しました。
やることが1つ増えたのではなく、不安が1つ消えた感覚のほうが近いです。
フォルダ比較が効く場面

テンプレートの大量修正後だけではありません。
複数人で作業したファイルをマージする前、静的サイトジェネレーターの書き出しフォルダの確認、CMSからのエクスポートデータの検証。
案件が重なる時期のフォルダ整理にも刺さります。
Windowsならフリーソフトとして定番のWinMergeがあります。FreeFileSyncはフォルダ同期まで含めて対応可能。
Macの場合はターミナルから`diff -rq`で差分確認ができますし、Beyond Compare 5ならWindows・Mac・Linux問わずテキストも画像もフォルダもまとめて扱えます。
インストール不要な選択肢としては、VSCodeのCompare Folders拡張がおすすめです。
エディタの中だけで完結します。
Web制作者向けWinMerge・Mac代替ツールの記事でも環境別の選び方を詳しく取り上げています。
どのツールを選ぶかより、フォルダ単位で差分を機械的に洗い出す手段を1つ持っているかどうか。
そこが分かれ目です。
信頼は「丁寧さ」ではなく「構造」で作る

あの朝のSlack通知以来、私は「ちゃんと確認した」という自分の感覚を信じなくなりました。
目視確認を丁寧にやることと、確認の仕組みを持つこと。
これはまったく別の話です。
フォルダ比較は効率化のテクニックではありません。
「見落とさない」という信頼を、注意力ではなく構造で担保するための手段です。
差分リストが0件なら安心して納品できる。
差分が出れば原因を特定できる。
どちらに転んでも、「確認したつもり」だった頃よりずっとまし。
比較作業全体を一元化したいなら、Diff Pro Maxで比較作業をすべて一元化するも参考になります。
テキスト、ファイル、フォルダと、散らばりがちな比較作業をひとまとめにできます。

