解説
長い一行の変更を見つけたい:Gitのword-diffで文字単位に比べる
文章の数字を一か所だけ直したのに、差分では長い一行全体が削除・追加になった。そんなときは、通常の行単位の差分に加えて、行の中の変更を読む表示を試してみよう。

文章の数字を一か所だけ直したのに、差分では長い一行全体が削除・追加になった。そんなときは、通常の行単位の差分に加えて、行の中の変更を読む表示を試してみよう。
Gitのword-diffは、変更の見せ方を変えるもの。元ファイルを編集したり、変更をコミットしたりする操作ではないよ。今回は自分で作った練習用テキスト二つを比べる。実際の原稿や運用リポジトリは使わなくて大丈夫。
練習用の二つの文を用意する
新しい空のフォルダーへ、before.txtとafter.txtを用意する。前者に「受付は9時からです。」、後者に「受付は10時からです。」と書き、それぞれ一行で保存する。
ターミナルでそのフォルダーへ移動し、次を入力しよう。
git --no-pager diff --no-index --no-color --word-diff=plain --word-diff-regex=. -- before.txt after.txt
--no-indexは、Gitの追跡状態ではなく二つのパスを比較する指定。--no-colorで色を使わず、--word-diff=plainで削除と追加を記号で表示する。--word-diff-regex=.は文字ごとの比較として扱う指定だよ。
編集部が隔離した練習フォルダーで実行したとき、本文部分は次の表示になった。
受付は[-9-]{+10+}時からです。
[- -]に囲まれた部分が削除、{+ +}が追加。一行全部を読み直すより、数字が変わったことに目を向けやすいね。この例では差分があるため終了ステータスは1だった。コマンドの終了番号だけで、実行に失敗したとは判断しないでね。
日本語では既定の区切り方に気を付ける
word-diffの既定は空白で単語を分ける。空白をあまり使わない日本語では、思ったより広い範囲が変更として表示される場合がある。今回の文字単位指定は、その見え方を細かくするためのものだよ。
ただし、正規表現に一致しない部分は差分を探す際に無視される。独自の正規表現を追加して、重要な文字まで比較から外してしまわないようにしよう。改行や空白の確認には通常の差分も残したいね。
実際のリポジトリでは比較対象も選ぶ
未ステージの変更を見るなら、リポジトリの中で次の形にする。
git --no-pager diff --no-color --word-diff=plain --word-diff-regex=. -- path/to/article.md
ステージ済みの変更を見る場合はdiffの後へ--cachedを加える。どちらも、コミット同士の比較とは対象が異なる。迷ったときは作業中とステージ済みの差分へ戻って、何と何を比べるか確認しよう。
記号だけで承認しない
元の文章に[- -]や{+ +}が含まれていると、plain形式は区切り記号を特別に逃がさないため、表示が紛らわしくなる。通常のgit diffや元ファイルも一緒に読み、数字の単位、否定、対象条件が変わっていないか確認してね。
練習をやり直すときは、二つのテキストを最初の文へ戻せばよい。比較コマンドそのものはファイルの内容を変更しない。ブラウザで動かす作例ではなく、ターミナルで入力・出力を確認する練習だよ。
参照した公式資料
確認日:2026年10月26日。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。