テキスト差分比較(diff)

このツールでできること

テキスト差分比較ツールは、2つのテキストを行単位で比較し、追加・削除・変更された行をハイライト表示する無料オンラインツールです。コードレビュー、文書のバージョン管理、設定ファイルの変更確認など、テキストの差分を素早く把握したいシーンで活用できます。すべての処理はブラウザ内で完結し、入力データがサーバーに送信されることはありません。

特徴

  • 行単位のdiff表示 — LCS(最長共通部分列)アルゴリズムによる正確な差分検出。追加・削除・変更なしの行をそれぞれ色分けして表示します。
  • 統一diff形式 — 変更前後の行番号を並べて表示するため、どの行がどう変わったか一目でわかります。
  • 統計情報の表示 — 追加行数・削除行数・変更なし行数をまとめて表示。変更の規模を把握できます。
  • ブラウザ完結・サーバー送信なし — 入力データは一切外部に送信されません。機密コードや社内文書も安心して比較できます。
  • 登録・インストール不要 — ブラウザでアクセスするだけですぐに使えます。diffコマンドのインストールも不要です。

使い方

  1. 左側の「変更前(Before)」エリアに、変更前のテキストを貼り付けます。
  2. 右側の「変更後(After)」エリアに、変更後のテキストを貼り付けます。
  3. 「比較する」ボタンを押すと、差分結果が下部に表示されます。追加行は緑、削除行は赤でハイライトされます。
  4. 統計情報で追加・削除・変更なしの行数を確認できます。「クリア」ボタンで入力と結果をリセットできます。

diffとは?

diff(ディフ)とは、2つのテキストの差分(違い)を検出・表示する仕組みです。もともとはUnixのコマンドラインツールとして1970年代に登場し、ソースコードのバージョン管理(Git、SVNなど)で広く使われています。「どの行が追加され、どの行が削除されたか」を機械的に検出し、人間が読みやすい形で表示します。

本ツールではLCS(Longest Common Subsequence: 最長共通部分列)アルゴリズムを使用しています。2つのテキストに共通する行の最長列を見つけ、そこに含まれない行を「追加」または「削除」として検出します。Gitの内部でも同様のアルゴリズムが使われています。

差分表示の見方

差分結果は以下のように色分けされます。

  • 緑色の行(+ マーク) — 変更後に追加された行です。変更前には存在しなかった内容が追加されたことを示します。
  • 赤色の行(- マーク) — 変更前にあったが削除された行です。変更後には存在しない内容を示します。
  • 白色の行(空白マーク) — 変更前後で同じ内容の行です。前後の文脈を把握するために表示されます。
  • 行番号 — 左列が変更前の行番号、右列が変更後の行番号です。削除行には変更前の番号のみ、追加行には変更後の番号のみが表示されます。

こんなときに使えます

  • コードレビュー — プルリクエスト前にコードの変更箇所を確認。Gitが使えない環境でも差分をチェックできます。
  • 文書の変更確認 — 契約書・仕様書・マニュアルの改訂前後を比較し、変更点を漏れなく把握。
  • 設定ファイルの比較 — サーバーの設定ファイル(nginx.conf、.envなど)の本番環境とステージング環境の違いを確認。
  • 翻訳・校正の確認 — 原文と訳文、校正前後のテキストを比較して修正箇所を把握。
  • SQLやCSVの差分チェック — データベースのスキーマ変更やCSVデータの差分をすばやく確認。
  • API レスポンスの比較 — 異なるバージョンのAPIレスポンスを比較して、変更の影響範囲を把握。

diff活用のコツ

  • 空白・改行を揃える — 比較前にインデントや改行コードを統一すると、意味のある差分だけを検出できます。
  • 小さな単位で比較する — ファイル全体ではなく、変更した関数やセクション単位で比較すると差分が見やすくなります。
  • 変更前を左、変更後を右 — diff の慣例として「Before → After(左 → 右)」の順で入力すると、結果が直感的に読めます。
  • コミット前のセルフレビュー — コードをコミットする前に差分を確認することで、意図しない変更の混入を防げます。

よくある質問

無料で使えますか?
はい、完全無料です。回数制限・登録・ログインも一切ありません。
入力したテキストはサーバーに送信されますか?
いいえ。差分の検出と表示はすべてお使いのブラウザ内(JavaScript)で処理されます。当サイトのサーバーにデータが送信されることはありません。
どのくらいの長さのテキストに対応していますか?
ブラウザのメモリが許す範囲であれば制限はありません。ただし、数万行を超える場合は処理に時間がかかることがあります。一般的なテキスト(数千行程度)であれば問題なく動作します。
文字単位の差分は検出できますか?
現在は行単位の差分検出のみに対応しています。行内のどの文字が変わったかを確認したい場合は、該当行を別途比較してください。
日本語のテキストでも正しく比較できますか?
はい。日本語・英語を問わず、あらゆるテキストの差分を検出できます。Unicode対応のため、絵文字や特殊文字を含むテキストも正しく比較されます。
スマートフォンでも使えますか?
はい。レスポンシブ対応なので、iPhone・Android のブラウザからも利用できます。モバイルではテキストエリアが縦に並ぶレイアウトになります。