CalquioCalquio

検索

計算ツールを検索

差分チェッカー

2つのテキストを比較して差分を可視化。追加、削除、変更なしの行を表示。

関連ツール

Diffとは?

diff(「difference」の略)は、2つのバージョンのテキスト間の変更を表示します。何が追加、削除、または変更されたかを強調表示します - あらゆるテキストのための変更履歴機能のようなものです。

なぜdiffが重要か:

  • コードレビュー: プルリクエストで何が変わったかを正確に確認
  • デバッグ: バージョン間で何が壊れたかを見つける
  • ドキュメント: 時間の経過とともにコンテンツの変更を追跡
  • コラボレーション: 複数の人の作業をマージ

diff形式は1970年代にUnix用に発明され、Git などの現代のバージョン管理システムの基盤となっています。

Diffビューの種類

1. 統一Diff(最も一般的)

@@ -1,4 +1,4 @@
 function greet(name) {
-  return "Hello, " + name;
+  return `Hello, ${name}!`;
 }
  • - で始まる行は削除された
  • + で始まる行は追加された
  • プレフィックスのない行(コンテキスト)は変更なし

2. サイドバイサイド 視覚的に比較しやすいが、より多くのスペースを使用。

3. インライン/単語Diff 行内の変更を強調表示。

Diffの読み方

ヘッダー

--- a/file.txt
+++ b/file.txt
@@ -10,7 +10,8 @@
  • --- = 古いファイル
  • +++ = 新しいファイル
  • @@ -10,7 +10,8 @@ = 位置情報
    • 10行目から始まり、7行を表示(古い)
    • 10行目から始まり、8行を表示(新しい)

プロのヒント: 変更されていない行の前のスペースは意図的です!整列を保持し、diffを解析可能にします。

Diffアルゴリズム

異なるアルゴリズムは異なる結果を生成します:

アルゴリズム最適な用途トレードオフ
Myers一般的な使用高速、移動を見逃す可能性
Patienceコードの再構築低速、より明確な出力
Histogram大きなファイルバランス
Wordドキュメントより詳細

実用的な用途

🔍 コードレビュー

git diff main feature-branch

マージ前にすべての変更を確認。

📜 ファイル比較

diff file1.txt file2.txt

任意の2つのテキストファイルを比較。

📝 設定の変更 サーバー設定を比較して違いを見つける:

diff /etc/nginx/nginx.conf nginx.conf.backup

より良いDiffのためのヒント

✅ Diffを読みやすくする:

  1. 小さく焦点を絞ったコミットを作成

    • レビューしやすい
    • 必要な場合に元に戻しやすい
  2. リファクタリングと機能を分離

    • フォーマット変更は実際の変更を隠す
    • 別のコミットでリフォーマットを行う
  3. 意味のあるコミットメッセージを書く

    • 何をだけでなくなぜを説明
    • 未来のあなたが現在のあなたに感謝する

❌ よくある落とし穴:

  • 空白ノイズ: diff -w で無視
  • 改行の問題: \r\n vs \n
  • バイナリファイル: Diffは画像、PDFを処理できない

Gitヒント: より良い散文diffのために git diff --color-words を設定。行全体ではなく単語レベルの変更を強調表示します。

人気のDiffツール

コマンドライン:

  • diff - Unix標準
  • git diff - Gitの組み込み
  • colordiff - 色付き出力

GUIツール:

ツールプラットフォーム特徴
VS Codeすべて組み込み、優秀
Beyond Compareすべて三方向マージ
MeldLinux/Windows視覚的マージ