テキスト差分比較とは

テキスト差分比較(diff)は、2つのテキストを比較して、追加・削除・変更された部分を視覚的に表示する機能です。

差分比較が役立つシーン

シーン用途
コードレビュー変更されたコードの確認
契約書チェック修正箇所の特定
翻訳チェック原文と訳文の対応確認
設定ファイル環境間の設定差分確認
文書校正編集前後の変更点把握
データ比較CSVデータの変更検出

diff の基本概念

差分の種類

差分表示では、一般的に以下の色分けが使われます。

表示意味色(一般的)
+ 追加行新しいテキストに追加された行
- 削除行古いテキストから削除された行
変更なし両方のテキストに存在する行グレー/白

表示形式

形式説明用途
サイドバイサイド左右に並べて比較視覚的に分かりやすい
インライン(統合形式)変更部分を上下に並べるGit のデフォルト
文字レベル差分行内の変更文字をハイライト細かい変更の確認

活用法1: コードレビュー

Git diffの使い方

# 作業中の変更を確認
git diff

# ステージング済みの変更を確認
git diff --staged

# 特定のコミット間の差分
git diff abc123 def456

# 特定ファイルの差分
git diff -- path/to/file.js

# ブランチ間の差分
git diff main..feature-branch

# 変更されたファイル名だけ表示
git diff --name-only

# 統計情報(追加/削除行数)
git diff --stat

コードレビューのポイント

差分を確認する際のチェックリスト:

  • ロジックの正しさ — バグが含まれていないか
  • 命名の適切さ — 変数名・関数名が分かりやすいか
  • エッジケース — 境界値や異常系の処理
  • パフォーマンス — 不必要なループやクエリがないか
  • セキュリティ — 入力バリデーション、SQLインジェクション等
  • テスト — テストコードが追加されているか

GitHub / GitLab のdiff機能

GitHub のPull Request画面では、以下の便利な機能が使えます。

機能説明
Files changed変更ファイル一覧と差分表示
インラインコメント特定の行にコメント
Suggestionコード修正案を提案
Viewed確認済みファイルのチェック
ファイルフィルタ特定の拡張子だけ表示

活用法2: 契約書・法務文書の比較

なぜ差分比較が重要か

契約書の改訂版を受け取った際、変更箇所を目視で探すのは非常に手間がかかり、見落としのリスクがあります。

Word文書の比較

Microsoft Wordには文書比較機能が内蔵されています。

  1. 「校閲」タブを開く
  2. 「比較」→「比較」を選択
  3. 「元の文書」と「変更された文書」を指定
  4. 「OK」をクリック

変更箇所が赤字・取り消し線で表示されます。

PDF文書の比較

PDF形式の契約書を比較する方法:

ツール料金特徴
Adobe Acrobat Pro有料PDF比較に最適
DiffPDF無料テキスト比較 + 外観比較
オンラインdiffツール無料テキスト抽出→比較

契約書チェックのポイント

差分を確認する際に特に注意すべき箇所:

  • 金額・数量 — 数字の変更は重大な影響
  • 期間・日付 — 契約期間、支払期日
  • 免責条項 — 責任範囲の変更
  • 解約条件 — 解約に関する条件の追加・変更
  • 知的財産権 — 権利帰属の変更
  • 機密保持 — 守秘義務の範囲

活用法3: 設定ファイルの比較

サーバー設定の差分確認

本番環境とステージング環境の設定差分を確認する際にdiffが役立ちます。

# ローカル設定とリモート設定の比較
diff local.env remote.env

# サイドバイサイドで表示
diff -y local.env remote.env

# 差分のみ表示(共通行を省略)
diff -y --suppress-common-lines local.env remote.env

設定比較のチェックリスト

  • データベース接続先
  • APIキー・シークレット
  • ログレベル
  • キャッシュ設定
  • CORS設定
  • 環境固有のURL

活用法4: 翻訳・ローカライゼーション

翻訳ファイルの差分

多言語対応のアプリケーションでは、翻訳ファイル(JSON、YAML等)の差分確認が重要です。

# 翻訳ファイルの差分
diff ja.json en.json

# キーの差分(翻訳漏れの検出)
jq 'keys' ja.json > ja_keys.txt
jq 'keys' en.json > en_keys.txt
diff ja_keys.txt en_keys.txt

おすすめの差分比較ツール

オンラインツール

ツール特徴無料
Assisty diffブラウザ完結・日本語対応
Diffcheckerシンプルで使いやすい
Text Compare文字レベル差分対応

デスクトップアプリ

ツールOS料金特徴
VS Code(内蔵diff)全OS無料エディタ統合
Beyond Compare全OS有料高機能。フォルダ比較対応
WinMergeWindows無料定番。フォルダ比較対応
MeldLinux/Mac無料3ウェイマージ対応
KaleidoscopeMac有料美しいUI

VS Codeでの差分比較

VS Codeには強力なdiff機能が内蔵されています。

# コマンドラインからdiffを開く
code --diff file1.txt file2.txt

VS Code内での操作

  1. エクスプローラーで1つ目のファイルを右クリック →「比較するファイルを選択」
  2. 2つ目のファイルを右クリック →「選択したファイルと比較」

コマンドラインの diff

# 基本的な差分表示
diff file1.txt file2.txt

# カラー表示
diff --color file1.txt file2.txt

# 統合形式(unifiedformat)
diff -u file1.txt file2.txt

# ディレクトリの再帰比較
diff -r dir1/ dir2/

# 空白の違いを無視
diff -w file1.txt file2.txt

# 大文字小文字の違いを無視
diff -i file1.txt file2.txt

差分比較の実践テクニック

空白・改行の違いを無視する

Windows(CRLF)とMac/Linux(LF)の改行コードの違いで大量の差分が出ることがあります。

# 改行コードの違いを無視
diff --strip-trailing-cr file1.txt file2.txt

# 空白の違いも無視
diff -b file1.txt file2.txt

大きなファイルの差分

大きなファイルの差分を見る場合は、コンテキスト行数を制限すると見やすくなります。

# 変更箇所の前後3行のみ表示
diff -U3 file1.txt file2.txt

よくある質問

Q: バイナリファイルの比較はできる?

テキストベースのdiffツールではバイナリファイルの比較はできません。画像の比較にはBeyond CompareやKaleidoscopeが対応しています。

Q: 3つ以上のファイルを同時に比較できる?

3ウェイマージ(3-way merge)に対応したツール(Meld、Beyond Compare、VS Code等)を使えば、3つのファイルを同時に比較できます。Gitのマージコンフリクト解決に便利です。

Q: Excelファイルの差分比較は?

Excelファイルを直接diffすることは困難です。CSVに変換してからテキスト差分を取るか、Spreadsheet Compare(Microsoft Office Professional Plus付属)を使います。

まとめ

テキスト差分比較は、あらゆる文書作業の効率化に役立ちます。

  • コードレビュー → Git diff + GitHub/GitLab
  • 契約書チェック → Word比較機能 or オンラインdiffツール
  • 設定ファイル → コマンドラインdiff
  • 日常的なテキスト比較 → VS Code or オンラインツール

テキストの差分比較は Assistyのテキスト差分比較ツール で簡単に行えます。ブラウザ上で2つのテキストを貼り付けるだけで、変更箇所が一目で分かります。