広告が嫌いですか? 行く 広告なし 今日

Gitなしでのテキスト差分 ファイルと文字列の変更を確認

掲載日
Gitなしテキスト差分:ファイルと文字列の変更を確認 1

すべての比較がGitリポジトリ内で行われるわけではありません。設定ファイルは手動で編集され、APIレスポンスはSlackのスレッドに貼り付けられます。SQLクエリはスプレッドシート内でバージョン間で調整されます。2つのテキストの間で実際に変更された内容を確認する必要がある場合、差分ツールが必要です——ただし、必ずしもGitが必要とは限りません。

適切なツールを選ぶ方法を紹介します。

Git以外での差分が必要な場合

Gitの差分は、ファイルがバージョン管理されている場合にワークフローに組み込まれています。しかし、多くの状況はそれとは異なります:

  • 設定ファイル — 変更前と変更後の比較、特にファイルがリポジトリに入っていない場合 nginx.conf APIレスポンスのスナップショット
  • — 1週間前と比較した2つのJSONパラメータの間の変更を確認 SQLクエリ
  • — 開発環境で実行されるクエリと、プロダクション環境で実行されるクエリの間の比較 — 手動で編集されたドキュメントを渡す前にレビュー
  • ドキュメント このような場合、コミットやステージされたファイルを必要としない、シンプルな比較が求められます。

Unix

コマンド:重要なフラグ diff LinuxまたはmacOS上で、このコマンドはすでにインストールされています。基本的な使い方は次の通りです:

ただし、デフォルトの出力は簡潔です。以下のフラグで読みやすくなります: diff 統合出力の例:

diff file1.txt file2.txt

が削除されました,

# Unified format (same as Git's diff output — most familiar)
diff -u file1.txt file2.txt

# Side-by-side comparison
diff -y file1.txt file2.txt

# Ignore whitespace differences (useful for formatting changes)
diff -w file1.txt file2.txt

# Combine: unified format, ignore whitespace
diff -uw file1.txt file2.txt

が追加されました。前後の行は変更されていません。

--- file1.txt   2026-03-01 10:00:00
+++ file2.txt   2026-03-05 14:30:00
@@ -1,4 +1,4 @@
 server {
-    listen 80;
+    listen 443;
     server_name example.com;
 }

から始まる行 - 3つのバージョンを比較する場合 + 標準的な差分は2つのファイルを比較します。3つのバージョンを比較する3段階差分は、共通の祖先を扱います。これはGitの外でも、マージ衝突の解決に使われます。

コマンドはこれを処理します:

これは、

diff3 の変更と、

diff3 mine.txt base.txt theirs.txt

の変更を示し、衝突をフラグ付けします。2人の人が独立して同じ開始ドキュメントを編集した場合や、Gitマージを使わずにそれらを調整する必要があるときに役立ちます。 mine.txt vs base.txtプログラムによる差分:PythonとNode.js theirs.txt vs base.txt スクリプト内で差分を必要とする場合、またはアプリケーションに差分出力を組み込む場合、コマンドを呼び出すのではなく、ライブラリを使用します。

Python —

もしくは diff.

を用いて、並列表示のHTML出力を生成し、 difflib:

import difflib

text1 = open("file1.txt").readlines()
text2 = open("file2.txt").readlines()

diff = difflib.unified_diff(text1, text2, fromfile="file1.txt", tofile="file2.txt")
print("".join(diff))

difflib は2つの文字列間の類似度を計算するためのライブラリです。これは、近似マッチングに便利です。 HtmlDiff Node.js — SequenceMatcher パッケージ:

ライブラリは、文字、単語、行、文、JSON、CSSの差分を標準でサポートしています。 diff オンラインツールが適切な場合

npm install diff
const Diff = require('diff');

const one = 'SELECT id, name FROM users WHERE active = 1;';
const two = 'SELECT id, name, email FROM users WHERE active = 1 LIMIT 100;';

const changes = Diff.diffWords(one, two);
changes.forEach(part => {
  if (part.added) process.stdout.write('\x1b[32m' + part.value + '\x1b[0m');
  else if (part.removed) process.stdout.write('\x1b[31m' + part.value + '\x1b[0m');
  else process.stdout.write(part.value);
});

diff ディスクにすでに2つのファイルがある場合、CLIは速いですが、2つのソースからコピーされたテキスト(Slackスレッド、2つのAPIレスポンス、クリップボードコンテンツ)を比較する場合、ターミナルを開いて一時ファイルを作成するのは過剰です。

ブラウザベースのテキスト比較ツールが最も速い方法です:

ディスクにファイルがない一時的な比較

ターミナルを使わない人向けに差分を共有

  • 設定なしで前後を確認
  • IO Tools テキスト比較
  • ブラウザ内で差分を直接処理し、シンタックスハイライトを提供し、ファイルアップロードを必要としません。2つのテキストを貼り付け、すぐに差分を確認できます。

構造化データの差分:JSONとYAMLは異なります プレーンテキスト差分は行単位で動作します。JSONとYAMLは構造を持ち、フォーマットの違い(インデント、キー順序)は標準差分では意味のないノイズになります。

JSONの場合、まず標準化します:

これはフォーマットの変化を除去し、実際のコンテンツ変更のみを表示します。YAMLの場合、

のようなツールは構造を理解し、行単位ではなく意味的に差分を報告します。

jq --sort-keys . file1.json > file1_normalized.json
jq --sort-keys . file2.json > file2_normalized.json
diff -u file1_normalized.json file2_normalized.json

最も適したツール dyff プレーンテキストファイル

用途標準化、どこでも動作注記
ターミナルでの並列表示diff -u広い出力、短いファイルに適している
マージ衝突(Gitなし)diff -y3つのバージョンの比較
スクリプトまたは自動化された差分diff3またはNode.js
パイプラインやアプリに組み込むパイソン difflib 一時的なペースト比較 diffブラウザベース、設定不要
フォーマットノイズのあるJSON構造化データの差分:JSONとYAMLは異なります標準化 +
キーを並べ替え、その後差分を取るjq 構造を理解したツール、より良い信号 diffどのツールを使うべきか
ヤムdyff, yamldiffディスクにある2つのファイル

スペースを無視する必要がある

  • 3つのバージョンを調整する必要があるdiff -u
  • パイプラインやスクリプトを構築するdiff -uw
  • npmパッケージdiff3
  • ブラウザ内で2つのペーストを比較するdifflib または diff JSONの差分
  • → を使用して標準化し、その後構造化データの差分:JSONとYAMLは異なります
  • YAMLの差分 → を使用する jq最も速い方法は、あなたのスタートポイントに合うツールです。テキストがすでにクリップボードにある場合、ブラウザベースの差分ツールはターミナルワークフローを上回ります。ファイルに存在する場合、 diff
  • はすでにあなたのマシンにインストールされています。 Gitなしでのテキスト差分:ファイルと文字列の変更を確認 2 dyff

Gitなしでのテキスト差分:ファイルと文字列の変更を確認 1 diff すでにあなたのマシンにあります。

広告なしで楽しみたいですか? 今すぐ広告なしで

拡張機能をインストールする

お気に入りのブラウザにIOツールを追加して、すぐにアクセスし、検索を高速化します。

に追加 Chrome拡張機能 に追加 エッジ拡張 に追加 Firefox 拡張機能 に追加 Opera 拡張機能

スコアボードが到着しました!

スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!

ニュースコーナー 技術ハイライト付き

参加する

価値ある無料ツールの提供を継続するためにご協力ください

コーヒーを買って