ログラミングや開発の現場で頻繁に使われるGit。中でも、ファイルの変更内容を確認するために欠かせないのが「git diff」コマンドです。
このコマンドを使えば、何がどこでどう変わったのかを簡単に把握でき、コードレビューやバグ修正の手助けになります。
本記事では、git diffコマンドの基本的な使い方から、具体的なオプション、そして実践的な活用例までをわかりやすく解説します。Git初心者の方から中級者まで、知っておくと便利な知識を網羅していますので、ぜひ参考にしてください。
git diffとは?
「git diff」とは、Gitにおける差分確認用のコマンドです。
変更されたファイルのうち、どの行がどう変わったのかを確認することができます。
通常は、まだステージ(インデックス)に追加していないファイルの変更差分を表示しますが、指定次第でコミット間の比較なども可能です。
Gitはバージョン管理システムなので、過去と現在の状態を比較できるのは大きな強みです。その比較を視覚的に確認できるのが、まさにこのgit diffです。
基本的な使い方
最も基本的な形式は、以下の通りです。
git diff
このコマンドは、ワーキングディレクトリとインデックス(ステージ)との差分を表示します。
つまり、git add
する前の「作業中の変更」を確認するためのコマンドです。
例:
git diff
結果として、変更されたファイル名、そしてどの行が追加・削除されたかが表示されます。追加された行は +
、削除された行は -
で示されます。
ステージ済みの変更を比較する
次に、ステージ(git add
済み)の変更を確認したいときは、次のように入力します。
git diff --cached
または、以下でも同じ意味です:
git diff --staged
これにより、インデックスと最新のコミットとの差分が表示されます。
コミットする前にレビューしたい時に非常に便利です。
特定のファイルだけを比較する
変更点を確認したいファイルが限定されている場合は、ファイル名を指定できます。
git diff ファイル名
例:
git diff index.html
これにより、index.html
に加えた変更内容だけを表示できます。
コミット間の差分を比較する
過去のコミット同士の差分を見たいときには、以下のように指定します。
git diff コミット1 コミット2
例:
git diff abc123 def456
これは、abc123
とdef456
の2つのコミット間でどのような変更があったかを表示します。
コミットIDの短縮形式でもOKです。
ブランチ間の変更を比較する
開発では、異なるブランチ間の差分を確認したいケースも多いです。
そんな時は、以下のようにブランチ名を指定します。
git diff ブランチA..ブランチB
例:
git diff main..feature/new-ui
このコマンドは、main
とfeature/new-ui
ブランチの違いを表示します。
プルリクエスト前に確認する時などによく使われます。
オプションを使って見やすくする
git diffには表示を見やすくするオプションも多数あります。
行単位ではなく単語単位で差分を見る
git diff --word-diff
カラー表示を強制する
git diff --color
コンテキスト行数の調整
差分表示には、変更前後の数行が表示されます。これを調整するには次のようにします。
git diff -U5
この例では、5行のコンテキスト(前後のコード)を表示します。
GUIツールと組み合わせる
ターミナルでの確認がつらいという方は、GUIの差分ツールと連携させることもできます。
例:meldを使う
git difftool -t meld
git difftool
を使うことで、普段使っているエディタや外部ツールで変更点を確認することが可能になります。
よくある用途と活用例
- コードレビュー前の最終チェック:
git diff --cached
でステージ済みの変更を確認することで、不要な変更をコミットするのを防げます。 - バグ調査時の変更点比較:
過去のバージョンと今のコードをgit diff
で比較することで、原因箇所を特定しやすくなります。 - 複数人開発の調整:
ブランチ間の差分確認で、コンフリクト前に調整ができ、スムーズなマージが可能になります。
まとめ
「git diff」コマンドは、変更点を瞬時に可視化できる非常に便利なツールです。
基本の使い方から、ステージ済みの確認、ブランチ間の比較まで、開発のあらゆる場面で役立ちます。
覚えることが多そうに見えますが、よく使うコマンドは限られています。
まずは基本形のgit diff
とgit diff --cached
から使ってみて、徐々に応用的な使い方を覚えていくのがおすすめです。
Gitの理解が深まると、開発効率も格段にアップします。
この記事を参考に、ぜひ「git diff」を日々の作業に取り入れてみてください。