【Git】git diff ブランチ間の差分を初心者向けにわかりやすく解説
はじめに
Gitを使って複数のブランチを管理するとき、同じファイルが別々に変更されることがありますね。
そんなときに「どこが変更されたのか」を手軽にチェックする方法が git diff です。
初心者の方は「そもそもブランチ間の差分ってどうやって見るの?」という疑問を持つかもしれません。
しかし、手順そのものはそれほど難しくありません。
実務でも効率的にレビューを行い、バグの原因を素早く探すために git diff を活用する場面はたくさんあります。
ここでは、ブランチ間の差分を表示するための具体的な手順や活用シーンなどを、なるべく簡単な言葉で紹介していきます。
この記事を読むとわかること
- ブランチ間で差分を確認するメリット
- git diff を使ったブランチ比較の基本的な流れ
- よく使われるオプションや実務での活用シーン
- 差分をチェックするときの注意点
ブランチ間で差分を確認するメリット
ブランチ間の差分をチェックするメリットは多岐にわたります。
簡単に挙げると、次のようなメリットがあります。
差分を確認することで、どのファイルがどのように変更されたか を正確に把握できます。
とくに複数人で共同開発する際には、誰が何を変更しようとしているのかを素早く理解する助けになるでしょう。
また、マージ前に衝突(コンフリクト)しそうな部分を先に把握できるので、トラブルを減らせる可能性があります。
開発者同士のコミュニケーションもスムーズになりますね。
さらに、余計な変更 や 不要な差分 が入っていないかを確認するためにも、事前にブランチ間で差分を取っておくと安心です。
リリース直前に「なぜか想定外のファイルも修正対象になっていた」といった事態を防ぎやすくなります。
git diff でブランチ間の差分を確認する方法
ここでは、代表的なコマンド例を紹介します。
ブランチ名を指定するだけである程度簡単に差分を出すことができますので、実際に試してみると流れがつかみやすいでしょう。
基本的なコマンド
通常は、今いるブランチと別のブランチを比較したり、二つの異なるブランチを指定して比較したりします。
次の例は、メインブランチを main
、作業ブランチを feature
と仮定したものです。
# カレントブランチが feature の場合、main ブランチとの差分を確認 git diff main # カレントブランチが main の場合、feature ブランチとの差分を確認 git diff feature # ブランチをどちらも指定して比較 git diff main feature
上の例では、最初の2つは「現在自分がいるブランチ」と「指定したブランチ」とを比較しています。
最後のコマンドのように、どちらのブランチも指定すると、あらゆる場所からでも 2つのブランチ同士の差分 を直接確認できます。
このとき、表示される情報はテキストベースなので、実際の差分を目視で確認できるのがポイントです。
3点リーダーを使った差分の取り方
Gitでは、ブランチ間の差分を取るときに 2点リーダー(..) と 3点リーダー(...) の2種類がよく使われます。
例えば、git diff main..feature
と git diff main...feature
です。
git diff main..feature
:main から feature に向けて進んだコミット群を差分表示します。git diff main...feature
:共通の祖先コミットから、feature ブランチが進んだ分を表示します。
細かい仕組みは初心者には少しわかりづらいかもしれませんが、一般的には ..
が「片方向の差分」で、...
が「共通の祖先からの差分を含んだ比較」と考えるとよいでしょう。
両者の違いを知っていると、チーム開発で「なぜこのファイルが比較対象になるの?」といった混乱を減らせます。
実務での活用シーン
ブランチ間の差分をチェックする行為は、プルリクエスト(Pull Request)やマージリクエスト(Merge Request)の作成前後で頻繁に行われます。
レビューする前に自分で差分を確認すれば、レビュー担当者に余計な手間をかけなくてすむかもしれません。
また、複数の機能を同時に開発しているケースでは、「本来なら関係ないはずの機能が変更箇所に混ざっていないか」 をチェックするときに便利です。
機能ごとのブランチをきちんと分けて作業していても、思わぬところで差分が発生する場合があります。
さらに、古いブランチが放置されている場合、どれだけの差分が積み重なってしまったかを把握するために使うこともあるでしょう。
一目で「大量のファイルが変更対象になっている」ことがわかるので、管理に役立ちます。
ブランチ名を混乱しないように管理するためにも、作業が終わったら不要なブランチは削除するなど、小まめな整理が大切です。
よく使われるオプション
ブランチ間の差分をよりわかりやすく見るために、オプションを付けることがあります。
次に挙げるのは代表的なオプション例です。
- --stat:変更されたファイル名や行数をサマリ形式で表示します。
- --name-only:変更されたファイル名のみを一覧で表示します。
- --color:差分をカラー表示にして視覚的に見やすくします。
- --word-diff:行単位でなく単語単位で差分を表示します。
たとえば、以下のように書くと main
と feature
間の差分をカラー表示で確認できます。
git diff --color main feature
このようなオプションを組み合わせると、差分が多いときでも どこに変更が集中しているか を効率よく把握できるでしょう。
あまりにも多くのファイルが変更対象になっている場合は、一度差分を小分けにして確認するほうがトラブルを避けやすくなります。
まとめ
Gitを使った複数ブランチでの開発では、git diff は欠かせない存在といえます。
ブランチ間の差分をしっかり把握できると、重複作業やコンフリクトを減らせる可能性が高まるでしょう。
初心者のうちは「どっちが最新のブランチだろう?」と混乱するかもしれませんが、慣れてくると自然に使いこなせるようになります。
日々の開発フローの中で差分の確認を習慣にしておくと、不要なミスを防ぎやすいですし、チームメンバーとの情報共有も円滑に進むでしょう。
ブランチの切り替えや作業内容が増えていくほど、git diff の活用シーンは増えていくはずです。
ぜひ、今回紹介した方法やオプションを試してみてください。