Git diffでコミット間の変更を比較する方法|ファイル・ディレクトリ単位で差分を確認する完全ガイド
Gitで開発をしていると、「このコミットで何を変更したんだっけ?」や「以前の状態と今の状態を比較したい」と思う場面は少なくありません。
私も旅行先のカフェでコードを書いていると、「昨日ホテルで修正した内容って何だったかな?」と確認したくなることがあります。
そんなときに活躍するのがgit diffコマンドです。
git diffを使いこなせるようになると、変更内容を素早く把握できるだけでなく、レビュー前の確認やバグ調査、過去の修正履歴の分析までスムーズに行えます。
この記事では、Git初心者でも理解できるように、コミット間の比較方法からファイル・ディレクトリ単位での差分確認まで詳しく解説します。
git diffとは?
git diffは、Gitで管理されている変更内容を比較するためのコマンドです。
現在の作業内容だけでなく、過去のコミット同士や特定ファイルの変更内容まで細かく確認できます。
例えば次のような用途で活躍します。
- 過去のコミット同士を比較する
- 現在の作業内容を確認する
- レビュー前の最終チェック
- バグが入り込んだ変更箇所を探す
- 特定ファイルだけの修正内容を確認する
Gitを日常的に使うなら、最も利用頻度の高いコマンドの一つです。
コミット間の変更を比較する
2つのコミットを指定すると、その間で変更された内容を表示できます。
git diff <コミット1> <コミット2>
使用例
git diff a12b34c d56e78f
このコマンドでは、a12b34cからd56e78fまでの変更内容を一覧表示します。
表示内容には以下のような情報が含まれます。
- 追加された行
- 削除された行
- 変更されたコード
- 変更されたファイル名
複数人で開発している場合でも、「どんな修正が行われたか」を一目で把握できます。
特定ファイルだけ変更内容を比較する
プロジェクト全体ではなく、特定ファイルだけ確認したいこともあります。
そんな場合はファイル名を指定します。
git diff <コミット1> <コミット2> <ファイル名>
使用例
git diff HEAD~1 HEAD src/Main.java
この例では、直前のコミットから現在までのsrc/Main.javaだけを比較します。
大規模プロジェクトでは大量の差分が表示されるため、ファイルを指定すると必要な情報だけ確認できるので非常に便利です。
このコマンドが役立つ場面
- レビュー対象ファイルだけ確認したい
- バグ修正箇所だけ調査したい
- 他人が修正した内容だけ確認したい
- 設定ファイルだけ比較したい
最新コミットと現在の作業ディレクトリを比較する
まだコミットしていない変更内容を確認する場合はHEADを指定します。
git diff HEAD
このコマンドでは、最新コミットと現在の作業ディレクトリとの差分を表示します。
こんなときに便利
- コミット前の最終確認
- 変更漏れがないか確認
- 不要な修正が混ざっていないか確認
- レビュー前のセルフチェック
私自身もコミットする前には必ず実行しています。
旅行先で集中してコードを書いていると、小さなデバッグコードを消し忘れることがあります。
git diff HEADを実行するだけで、そのような不要な変更にすぐ気付けるため安心してコミットできます。
特定ディレクトリだけ変更を比較する
大きなプロジェクトでは、ディレクトリ単位で変更内容を確認したいケースがあります。
git diff <コミット1> <コミット2> <ディレクトリ名>
使用例
git diff HEAD~3 HEAD src/
この例では、srcディレクトリだけの変更内容を表示します。
複数の機能を同時に開発している場合でも、対象となるディレクトリだけを確認できるため、レビュー効率が大幅に向上します。
活用シーン
- 機能単位で変更内容を確認する
- 担当ディレクトリだけレビューする
- フロントエンドだけ確認する
- バックエンドだけ確認する
- ライブラリ更新の影響範囲を調べる
git diffを使うメリット
git diffは単なる差分表示コマンドではありません。
開発効率を高める重要なツールでもあります。
- 変更内容を素早く把握できる
- 不要な修正をコミット前に発見できる
- レビュー品質が向上する
- バグ調査がスムーズになる
- コミット履歴を理解しやすくなる
- 共同開発で変更箇所を共有しやすい
よく使うgit diffコマンド一覧
| コマンド | 用途 |
|---|---|
git diff HEAD |
最新コミットと現在の変更を比較 |
git diff コミット1 コミット2 |
2つのコミットを比較 |
git diff コミット1 コミット2 ファイル名 |
特定ファイルのみ比較 |
git diff コミット1 コミット2 ディレクトリ名 |
特定ディレクトリのみ比較 |
まとめ
Gitでは変更履歴を管理するだけでなく、「どこが変わったのか」を素早く確認することも非常に重要です。
git diffを活用すると、コミット間の違いはもちろん、ファイル単位・ディレクトリ単位・現在の作業内容まで柔軟に比較できます。
特にコミット前にgit diff HEADを実行する習慣を身につけるだけでも、不要なコードのコミットやミスを大幅に減らせます。
最初は難しく感じるかもしれませんが、日々の開発で使い続けることで自然とGitの変更履歴を読み解く力が身につきます。
ぜひ今回紹介したコマンドを実際のプロジェクトで試し、Gitをより便利に活用してみてください。







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