【Git実践】diffで”何を変えたか”を自分の目で見る
*このシリーズはGit学習アプリ(maahh/git-learning-app)の第3章「差分を確認する」に対応しています。*
—
git diffの見方を覚えると、安心してコードを変えられる
Gitを使い始めたころ、一番困ったのが「何を変えたか、自分でわからなくなる」ことでした。
ファイルをいくつか編集して、「あれ、どこを変えたんだっけ?」とパニックになった経験があります。そのときに役立つのが `git diff`(ジット ディフ)コマンドです。
`diff` は「差分(difference)」の略で、「変更前と変更後の違いを並べて表示する」ためのコマンドです。
一度使い方を覚えると、「コミットする前に確認する」習慣がつきます。意図していない変更を防げるようになるので、Gitの作業全体が安心して進められるようになります。
—
git diffの出力は「赤と緑」で読む
`git diff` を実行すると、こんな感じの出力が表示されます。
git diff
出力例:
diff --git a/README.md b/README.md
index 83db48f..c2a6b87 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
# プロジェクト名
-このプロジェクトは作業中です。
+このプロジェクトは完成しました。
+最終確認: 2026年6月
最初は記号だらけで読みにくく感じますが、ポイントは2つだけです。
- `-`(マイナス・赤い行):**削除された行**(変更前の内容)
- `+`(プラス・緑の行):**追加された行**(変更後の内容)
つまり `README.md` の中で「作業中です。」という文が「完成しました。」に書き換えられ、さらに「最終確認: 2026年6月」という行が追加されたことがわかります。
空白だけの変更も `git diff` には表示されます。「変えてないのに差分が出る」と感じたら、スペースや改行が混ざっている可能性があります。
—
3種類の「状態」でdiffの対象が変わる
Gitでは、ファイルは大きく3つの状態に分かれています。
1. 作業ディレクトリ:今まさに編集しているファイル
2. ステージングエリア:`git add` でコミット待ちにした変更
3. リポジトリ(コミット済み):`git commit` で記録した変更
`git diff` はどの状態を比べるかによってオプションが変わります。
よく使う3パターン
① 編集中の変更を確認する(`git add` 前)
git diff
作業ディレクトリとステージングエリアの差分を表示します。`git add` する前に「何を変えたか」を確認するときに使います。
② `git add` 済みの変更を確認する
git diff --cached
または
git diff --staged
ステージングエリアとリポジトリの差分を表示します。「コミットしようとしている変更をもう一度確認したい」ときに使います。`–cached` と `–staged` は同じ意味です(どちらでも動作します)。
③ 特定のファイルだけ確認する
git diff README.md
ファイル名を指定すると、そのファイルだけの差分を表示できます。複数ファイルを変更したときに特定の1ファイルだけ見たい場合に便利です。
—
`git diff –stat` で概要を先に見る
差分の全文を見る前に「どのファイルが何行変わったか」だけ確認したいときは `–stat` オプションが使えます。
git diff --stat
出力例:
README.md | 3 ++-
config.yml | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
`3 insertions(+)` が追加行数、`1 deletion(-)` が削除行数です。
変更ファイルが多い場合は先に `–stat` で全体像をつかんでから、ファイルを絞って `git diff ファイル名` で詳細を確認するという流れが効率的です。
—
Claude Codeと一緒に使うと理解が深まる
私はgit diffを覚えるとき、Claude Codeに「この出力は何を意味しているの?」と聞きながら学びました。出力結果をそのまま貼り付けると、日本語でわかりやすく説明してくれます。
Claude Codeのチャット欄にこのプロンプトを貼ってみてください:
—
プロンプト例(コピーして使えます)
私はgit diffの出力の読み方を練習しています。
現在の作業ディレクトリで git diff を実行して、その結果を日本語でわかりやすく説明してください。
以下の順番で教えてください:
1. 変更されたファイル名と変更の概要
2. 各ファイルで削除された行(- の行)の内容
3. 各ファイルで追加された行(+ の行)の内容
4. この変更をコミットしてよいかどうかの意見
実行前に「git diffを実行します」と一言知らせてから、結果を表示してください。
不明な点があれば推測せず、確認事項として列挙してください。
—
このプロンプトを使うと、コマンドを自分で打たなくてもClaude Codeが差分を確認して解説してくれます。最初のうちは「コマンドの意味」より「変更の内容が正しいか」に集中できるので、プレッシャーが減ります。
—
よくある疑問:`git diff` を打っても何も出ない
`git diff` を実行して何も表示されないことがあります。これはエラーではなく「変更がない」か「変更をすべて `git add` 済み」という状態です。
- `git add` 前の変更を確認したいなら → `git diff`(オプションなし)
- `git add` 後の変更を確認したいなら → `git diff –cached`
どちらも何も出なければ、すべての変更がコミット済みという意味です。
—
環境・バージョンについて
本記事のコマンド例はGit 2.x系(2026年6月時点)で動作確認しています。Windows・macOS・Linuxいずれでも動作しますが、ターミナルの表示色は環境によって異なる場合があります。
カラー表示が出ない場合は `git config –global color.diff auto` で設定できます。
—
アプリで実際に手を動かす
第3章「差分を確認する」では、ブラウザ上の本物のターミナルで `git diff` の各オプションを実際に試せます。変更前・変更後のファイルが用意されているので、ゼロからセットアップしなくてもすぐに差分確認の練習ができます。
→ Git学習アプリで第3章を試す(無料・インストール不要)
—
まとめ
- `git diff` は変更前と変更後の違いを `-`(削除)と `+`(追加)で表示する
- `git add` 前の確認は `git diff`、`git add` 後の確認は `git diff –cached`
- `git diff –stat` で変更ファイルの概要だけ先に確認できる
- `git diff ファイル名` で特定ファイルだけ見られる
- 何も出ない場合はエラーではなく「変更なし」または「全部ステージ済み」の状態
- Claude Codeに差分の出力を貼ると、日本語で解説してもらえる
コミットの前にdiffを確認する習慣をつけると、「意図しない変更をコミットしてしまった」というミスがほぼなくなります。最初は読み方が難しく感じても、数回繰り返すと自然とわかるようになります。
—
*前の記事:【Git実践】コミットは”写真を撮る”こと*
*次の記事:【Git実践】ブランチは”もう一本の道”。壊さず試す(近日公開)*