テキスト Diff 比較/ 行ごとの差分

2つのテキストの行ごとの差分をハイライト。コードとプレーンテキストをサポート、コンテキスト行数を調整可能、ローカル処理。

原文A
修正後B
コンテキスト
Diff

上の両パネルにテキストを貼り付けてください。

このツールは役に立ちましたか?

テキストDiffツールとは

テキストDiffツールはLCS(最長共通部分列)アルゴリズムを使用して2つのテキストを行ごとに比較し、追加、削除、変更を特定します。コードレビュー、設定ファイル比較、ドキュメントバージョン追跡で広く使用されています。

Diffツールの一般的な使用场景

コードレビュー:変更前後のコードを比較して修正箇所を特定。設定管理:異なる環境間の設定差異を比較。ドキュメント共同編集:編集履歴を確認。データ移行:データ変換の正確性を検証。

コード例

JavaScript (jsdiff)
import { diffLines } from 'diff';

const a = 'foo\nbar\nbaz';
const b = 'foo\nqux\nbaz';

diffLines(a, b).forEach(part => {
  const sign = part.added ? '+' :
               part.removed ? '-' : ' ';
  process.stdout.write(sign + part.value);
});
Python
import difflib

a = ['foo\n', 'bar\n', 'baz\n']
b = ['foo\n', 'qux\n', 'baz\n']

# Unified diff (like git diff)
diff = difflib.unified_diff(
    a, b,
    fromfile='original',
    tofile='modified',
    n=3,  # context lines
)
print(''.join(diff))
Go
// github.com/sergi/go-diff
import (
  dmp "github.com/sergi/go-diff/
       diffmatchpatch"
)

d := dmp.New()
diffs := d.DiffMain(textA, textB, false)
patch := d.PatchMake(textA, diffs)
fmt.Println(d.PatchToText(patch))
Shell / CLI
# Unified diff with 3 context lines
diff -U 3 original.txt modified.txt

# Git-style diff (no git repo needed)
git diff --no-index \
  original.txt modified.txt

# Side-by-side view
diff --side-by-side \
  original.txt modified.txt

よくある質問

Diff アルゴリズムの仕組みは?
LCS(最長共通部分列)アルゴリズムを使用してテキストを行ごとに比較し、最小の追加・削除セットを見つけます。git diff で使用されるアルゴリズムと類似しています。
コンテキスト行数の役割は?
各変更セクションの周囲に表示する未変更行の数を制御します。0 にすると変更行のみ、3 にすると変更の前後に3行ずつ、「すべて」にすると完全なテキストを表示します。
どのタイプのテキストがサポートされていますか?
コード(JavaScript、Python、Go など)、設定ファイル(JSON、YAML、TOML)、Markdown ドキュメント、ログファイルなど、任意のプレーンテキストがサポートされています。
コンテンツはサーバーに送信されますか?
いいえ。すべての処理は完全にブラウザ内で行われ、コンテンツがデバイスを離れることはありません。機密性の高いコードや設定の比較に安全です。
Diff 出力をコピーするには?
Diff パネルの右上にある「コピー」ボタンをクリックすると、統一形式の Diff テキストがクリップボードにコピーされます。
交換ボタンの用途は?
「交換 A↔B」をクリックすると元のテキストと変更後のテキストが入れ替わり、逆の方向から差分を確認できます。