git diff --statの使い方!見方や特定のファイルを指定する方法などを解説!

この記事ではgit diffコマンドの『--statオプション』について、

  • Git diff --statとは
  • git diff --statの使い方
  • git diff --statのコマンド実行例

などを分かりやすく説明するように心掛けています。ご参考になれば幸いです。

git diff --statとは

git diffコマンドは、任意のコミット間での差分を表示するためのコマンドです。このコマンドに--statオプションを付けると、差分の統計情報(変更されたファイル数や追加・削除された行数)を見ることができます。

補足

statstatistics(統計)の略です。

git diff --statの使い方

ブランチ間の差分を確認したい場合には、以下のコマンドを実行します。

git diff <ブランチ名A> <ブランチ名B>

例えば、masterブランチとfeatureブランチを比較したい場合には、以下のコマンドを実行します(masterブランチの方がfeatureブランチより古い扱いで差分が表示されます)。

git diff --stat master feature

実行結果の例

以下に実行結果の一例を示しています。実行結果では、各ファイル単位の変更行数が表示され、出力の最終行に追加された行数(insertions)削除された行数(deletions)の総計が表示されます。例えば、以下のような出力になります。

$ git diff --stat master feature
 test01.txt | 14 ++++++++++++--
 test02.txt |  5 +++++
 2 files changed, 17 insertions(+), 2 deletions(-)

この出力例より、masterブランチからfeatureブランチへの変更点として、以下のことが分かります。

  • test01.txtが変更
    • test01.txtでは14行変更。その内12行追加(+の数)、2行削除(-の数)。
  • test02.txtが変更
    • test02.txtでは合計5行変更。その内5行追加(+の数)
  • 合計2ファイル変更(test01.txttest02.txt)
    • 2ファイル合計で、17行追加(insertions)、2行削除(deletions)

git diff --statのコマンド実行例

バージョン間での差分を調べる

リリースコミットとして、タグv1とタグv2が設定されているとします。これらのバージョン間での差分の統計情報を調べるには、以下のコマンドを実行します。

git diff --stat v1 v2

カレントブランチでの差分を調べる

masterブランチとカレントブランチ間での差分の統計情報を調べるには、以下のコマンドを実行します。

git diff --stat master HEAD   # masterブランチとカレントブランチの最新を比較
git diff --stat master        # 同上(後ろの HEAD は省略可能)

コミット間での差分を調べる

任意の2つのコミット間での差分を調べるには、以下のコマンドを使用します。

git diff --stat <コミット番号1> <コミット番号2>

特定のディレクトリ以下の差分を調べる

特定のディレクトリ以下の差分のみを表示したい場合には、パスの指定の前に--を入れます。例えば、srcディレクトリ以下の差分を調べるには、以下のコマンドを使用します。

git diff --stat master feature -- src

カレントディレクトリ以下の差分を調べるには、以下のコマンドを使用します(カレントディレクトリの場合、--は省略可能です)。

git diff --stat master feature -- .
git diff --stat master feature

特定のファイルのみの差分を調べる

特定のファイルタイプのみの差分を調べるには、以下のコマンドを使用します。例えば、.javaファイルの差分のみを調べるには、以下のコマンドを使用します。

git diff --stat master feature -- "*.java"

全ての.javaファイルではなく、カレントディレクトリにある.javaファイルの差分のみを調べるには、以下のコマンドを使用します。

git diff --stat master feature -- "./*.java"

特定のファイルを除外する

特定のファイルを表示しないようにするには、:(exclude)またはその短縮形である!を使用します。例えば、READMEファイルを除いた差分を調べるには、以下のコマンドを使用します。

git diff --stat master feature -- ':(exclude)README*'
git diff --stat master feature -- ':!README*'

本記事のまとめ

この記事ではgit diffコマンドの『--statオプション』について、以下の内容を説明しました。

  • Git diff --statとは
  • git diff --statの使い方
  • git diff --statのコマンド実行例

お読み頂きありがとうございました。