Git diffコマンド完全ガイド|シチュエーション別の使い分けで確認作業を効率化
Gitで開発をしていると、 「どこを変更したんだっけ?」 「コミットする前に差分を確認したい」 「ブランチ同士で何が違うの?」 という場面は毎日のようにあります。
そんなときに活躍するのがgit diffコマンドです。
私も旅行先でノートPCを開いて開発していると、ホテルやカフェで少しずつコードを書くことが多くあります。数時間後に見返すと「この変更は何のためだった?」となることも少なくありません。そんな時にgit diffで変更点を確認すると、まるで旅の写真を見返すように作業内容を思い出せます。
この記事では、Git diffコマンドの基本から実践的な使い分けまでを初心者にもわかりやすく解説します。
Git diffとは?
git diffは、ファイルの変更内容(差分)を比較するためのGitコマンドです。
比較対象を自由に変更できるため、次のような場面で活躍します。
- コミット前に変更内容を確認する
- ステージング漏れを確認する
- ブランチ同士の違いを確認する
- コミット同士の変更点を比較する
- レビュー前の最終チェックを行う
Gitを使うなら必ず覚えておきたい基本コマンドのひとつです。
シチュエーション別Git diffコマンド一覧
| 目的 | コマンド |
|---|---|
| 作業ディレクトリ全体の変更確認 | git diff |
| ステージング済みの変更確認 | git diff --cached |
| 特定ファイルのみ比較 | git diff ファイル名 |
| ブランチ同士を比較 | git diff ブランチ1 ブランチ2 |
| コミット同士を比較 | git diff コミット1 コミット2 |
| 最新コミットとの差分確認 | git diff HEAD |
| ディレクトリ単位で比較 | git diff ディレクトリ名 |
作業ディレクトリ全体の変更を確認する
git diff
git diff まだステージングしていない変更内容を表示します。
コードを書いたあとに「コミットしても問題ないかな?」と確認したい時に最も使用頻度が高いコマンドです。
こんな時におすすめ
- 編集した内容を見直したい
- 不要な変更が混ざっていないか確認したい
- レビュー前のセルフチェック
ステージングエリアの変更を確認する
git diff --cached
git diff --cached ステージング済みの内容と最新コミットとの差分を表示します。
「git addした内容だけ確認したい」という時に便利です。
特定ファイルだけ比較する
git diff ファイル名
git diff index.html 大規模プロジェクトでは変更ファイルが大量になることがあります。
そんな時は対象ファイルだけ確認すると効率よく作業できます。
ブランチ間の変更を比較する
git diff ブランチ1 ブランチ2
git diff develop feature/login ブランチごとの差分を確認できます。
Pull Requestを作成する前や、マージ前の確認で非常によく使われます。
コミット同士を比較する
git diff コミット1 コミット2
git diff a123456 b789012 過去のコミット同士を比較できます。
「いつこのコードが変わったのか」を調査するときに便利です。
最新コミットとの差分を確認する
git diff HEAD
git diff HEAD 現在の作業内容と最新コミットとの差分を表示します。
コミット前の最終確認として使う開発者も多いコマンドです。
ディレクトリ単位で比較する
git diff ディレクトリ名
git diff src/ 指定したディレクトリ配下だけを比較できます。
フロントエンドだけ、バックエンドだけなど、範囲を限定して確認したい場合に便利です。
Git diffの便利なオプション
ブランチ比較ではオプションを組み合わせることで、より効率よく変更内容を把握できます。
--stat
git diff --stat ブランチ1 ブランチ2 変更されたファイル数や追加・削除された行数などの統計情報を表示します。
表示例
index.html | 10 +++++----- main.js | 15 +++++++++++---- style.css | 5 +++-- おすすめの使い方
- 変更規模を素早く把握したい
- レビュー前に確認したい
- マージ前の影響範囲を確認したい
--name-only
git diff --name-only ブランチ1 ブランチ2 変更されたファイル名だけを一覧表示します。
差分の詳細ではなく、どのファイルが変更されたかだけ確認したい時に便利です。
--name-status
git diff --name-status ブランチ1 ブランチ2 変更ファイル名と変更内容を同時に表示します。
表示例
M index.html A login.js D old.css R config.js | 記号 | 意味 |
|---|---|
| M | Modified(修正) |
| A | Added(追加) |
| D | Deleted(削除) |
| C | Copied(コピー) |
| R | Renamed(リネーム) |
| U | Updated(未マージ・競合状態) |
変更内容を一覧で確認できるため、レビュー前には非常に便利です。
3つ以上のブランチを比較する
git diff --name-status ブランチ1 ブランチ2 ブランチ3 複数のブランチを比較したいケースでも利用できます。
ただし、実際の開発現場では比較対象を2つに絞ることが一般的です。複数ブランチの差分を確認したい場合は、比較方法や意図を整理してから実行すると、結果を理解しやすくなります。
Git diffを使いこなすポイント
- 作業中は「git diff」でこまめに確認する
- コミット前は「git diff --cached」で最終確認する
- レビュー前は「--stat」で変更規模を把握する
- 変更ファイルだけ知りたいなら「--name-only」
- 変更内容も一覧で見たいなら「--name-status」
- ブランチ比較はPull Request前の確認に最適
まとめ
Git diffは、単純にコードの違いを見るだけではなく、開発の品質を高めるための重要な確認ツールです。
毎回コミット前に差分を確認する習慣をつけるだけでも、不要な変更やコミットミスを大きく減らせます。
最初は「git diff」だけでも十分ですが、慣れてきたら「--stat」「--name-only」「--name-status」も使い分けることで、確認作業の効率が大幅に向上します。
ぜひ今回紹介したコマンドを日々の開発に取り入れ、より安全で効率的なGit運用を目指してみてください。







0 件のコメント:
コメントを投稿