git logの使い方!コミット履歴の確認・検索・絞り込み方法を解説!

Gitを使っていると、「過去にどのような変更をしたのか」「誰がいつコミットしたのか」を確認したい場面があります。

例えば、不具合が発生したときに過去のコミットを確認したり、特定のファイルがいつ変更されたのかを調べたりする場合です。

このようなときに使用できるのが、git logコマンドです。

しかし、git logには多くのオプションがあるため、

  • git logとは何?
  • コミット履歴はどうやって確認するの?
  • 履歴を1行ずつ表示するには?
  • 特定のファイルや期間に絞り込むには?
  • ブランチの分岐やマージを見やすくするには?

と疑問に思うこともあるでしょう。

この記事では、git logコマンドの基本的な使い方から、表示形式の変更、コミットの絞り込み、ファイルの変更内容を確認する方法まで、わかりやすく解説します。

git logコマンドとは?

git logとは、Gitリポジトリのコミット履歴を確認するためのコマンドです。

例えば、Gitリポジトリ内で次のコマンドを実行します。

git log

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

git logでは、基本的に新しいコミットから古いコミットの順番で履歴が表示されます。

主な表示内容は次のとおりです。

項目内容
commitコミットを識別するコミットID
Authorコミットの内容を作成した人
Dateコミット日時
ユーザー登録機能を追加などコミットメッセージ

これらの情報を確認することで、「誰が」「いつ」「どのような目的で」変更したのかを追跡できます。

git logの基本構文

git logの基本構文は次のとおりです。

git log [オプション] [コミットやブランチなど] [--] [ファイル・ディレクトリ]

単純にコミット履歴を確認するだけであれば、オプションを指定する必要はありません。

git log

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

一方、git logには多くのオプションが用意されており、「1行で表示する」「特定の期間だけ表示する」「変更されたファイルを表示する」といった指定ができます。

よく使うgit logコマンド一覧

git logには、コミット履歴の表示方法を変更したり、表示するコミットを絞り込んだりするためのさまざまなオプションがあります。

ここでは、この記事で紹介する主なgit logコマンドをまとめます。

コマンド内容
git logコミット履歴を表示する
git log --oneline1コミットを1行で表示する
git log --graph履歴をグラフ形式で表示する
git log --decorateブランチ名やタグ名などを表示する
git log --oneline --graph --decorate履歴をコンパクトなグラフ形式で表示する
git log --statファイルごとの変更量を表示する
git log --numstatファイルごとの追加・削除行数を表示する
git log --name-only変更されたファイル名を表示する
git log --name-status変更されたファイル名と状態を表示する
git log -pコミットごとの具体的な差分を表示する
git log -n 10最新10件を表示する
git log --since="4 days ago"指定日時より新しいコミットを表示する
git log --until="2026-10-01"指定日時より古いコミットを表示する
git log --author="Taro"Authorで絞り込む
git log --committer="Taro"Committerで絞り込む
git log --grep="login"コミットメッセージで絞り込む
git log -- path/to/file特定のファイルに関係する履歴を表示する
git log --follow -- path/to/file名前変更を越えて1ファイルの履歴を追跡する
git log --mergesマージコミットだけ表示する
git log --no-mergesマージコミットを除外する
git log --first-parent第1親だけをたどる
git log --allすべての参照を対象に履歴を表示する
git log feature指定したブランチからたどれる履歴を表示する
git log main..featurefeatureにあってmainにないコミットを表示する

では、ここからそれぞれのコマンドやオプションについて、実行結果を確認しながら詳しく見ていきましょう。

git logの表示を見やすくする

git logの通常表示は情報量が多いため、コミットが増えると履歴を確認しにくくなることがあります。

ここでは、コミット履歴を見やすくする代表的なオプションを紹介します。

--onelineで1コミットを1行で表示する

--onelineを指定すると、1つのコミットを1行で簡潔に表示できます。

git log --oneline

# 実行結果
8a51c31 ユーザー登録機能を追加
27bf123 ログイン画面を追加
6cd8912 初期コミット

通常のgit logと比べて、コミットIDやAuthor、Dateなどの詳しい情報が省略されるため、履歴全体を素早く確認したい場合に便利です。

表示されている8a51c31などは、完全なコミットIDを短縮したものです。

--graphでブランチの分岐やマージを表示する

--graphを指定すると、コミット履歴の分岐やマージをASCII文字を使ったグラフ形式で表示できます。

git log --graph

# 実行結果
*   commit 5f42abc000000000000000000000000000000000
|\  Merge: 27bf123 8a51c31
| | Author: Taro Yamada <taro@example.com>
| | Date:   Thu Oct 1 16:00:00 2026 +0900
| |
| |     Merge branch 'feature'
| |
| * commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
| | Author: Taro Yamada <taro@example.com>
| | Date:   Thu Oct 1 10:30:00 2026 +0900
| |
| |     ユーザー登録機能を追加
| |
| * commit 73ab812000000000000000000000000000000000
|/  Author: Taro Yamada <taro@example.com>
|   Date:   Thu Oct 1 09:30:00 2026 +0900
|
|       バリデーションを追加
|
* commit 27bf1234567890abcdef1234567890abcdef1234
| Author: Taro Yamada <taro@example.com>
| Date:   Wed Sep 30 15:20:00 2026 +0900
|
|     ログイン画面を追加
|
* commit 6cd8912000000000000000000000000000000000
  Author: Taro Yamada <taro@example.com>
  Date:   Tue Sep 29 09:00:00 2026 +0900

      初期コミット

特に--onelineと組み合わせると見やすくなります。

git log --oneline --graph

# 実行結果
*   5f42abc Merge branch 'feature'
|\
| * 8a51c31 ユーザー登録機能を追加
| * 73ab812 バリデーションを追加
|/
* 27bf123 ログイン画面を追加
* 6cd8912 初期コミット

*や線によって、ブランチがどこから分岐し、どこでマージされたのかを確認できます。

--decorateでブランチ名やタグ名を表示する

--decorateを指定すると、コミットに関連付けられているブランチ名やタグ名などを表示できます。

git log --oneline --decorate

# 実行結果
5f42abc (HEAD -> main) Merge branch 'feature'
8a51c31 (feature) ユーザー登録機能を追加
73ab812 バリデーションを追加
27bf123 ログイン画面を追加
6cd8912 初期コミット

この例では、HEAD -> mainから現在mainブランチを指していることが分かります。

--oneline・--graph・--decorateを組み合わせる

コミット履歴を見やすく確認したい場合は、次のように複数のオプションを組み合わせることができます。

git log --oneline --graph --decorate

# 実行結果
*   5f42abc (HEAD -> main) Merge branch 'feature'
|\
| * 8a51c31 (feature) ユーザー登録機能を追加
| * 73ab812 バリデーションを追加
|/
* 27bf123 ログイン画面を追加
* 6cd8912 初期コミット

コミットを1行で表示しながら、ブランチの分岐・マージやブランチ名なども確認できます。

git logで変更内容を確認する

git logでは、コミット履歴だけでなく、それぞれのコミットでどのファイルが変更されたのかを確認することもできます。

--statで変更されたファイルと変更量を表示する

--statを指定すると、それぞれのコミットで変更されたファイルと変更量を確認できます。

git log --stat

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

 src/User.ts | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

 src/Login.ts | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

この例では、src/User.tsが変更され、8行追加、2行削除されたことが分かります。

--numstatで追加・削除された行数を表示する

--numstatを指定すると、ファイルごとに追加された行数と削除された行数を数値で表示できます。

git log --numstat

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

8       2       src/User.ts
3       0       src/UserService.ts

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

5       1       src/Login.ts

左から「追加された行数」「削除された行数」「ファイル名」が表示されます。なお、バイナリファイルでは追加・削除行数の代わりに-が表示されます。

ファイルごとの変更量を数値として確認したい場合に便利です。

--name-onlyで変更されたファイル名を表示する

変更されたファイル名だけを確認したい場合は、--name-onlyを使用できます。

git log --name-only

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

src/User.ts
src/UserService.ts

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

src/Login.ts

この例では、8a51c31...のコミットでsrc/User.tsとsrc/UserService.ts、27bf123...のコミットでsrc/Login.tsが変更されたことが分かります。

--name-statusで変更されたファイルと状態を表示する

--name-statusを指定すると、変更されたファイル名に加えて、そのファイルが追加・変更・削除されたのかを確認できます。

git log --name-status

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

M       src/User.ts
A       src/UserService.ts
D       src/OldUser.ts

主な状態は次のとおりです。

表示意味
AAdded:追加
MModified:変更
DDeleted:削除
RRenamed:名前変更

-pで実際の差分を表示する

-pまたは--patchを指定すると、それぞれのコミットで実際にどのような変更が行われたのかを差分形式で確認できます。

例えば、次のような差分が表示されます。

git log -p

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー名を変更

diff --git a/src/User.ts b/src/User.ts
index 1234567..89abcde 100644
--- a/src/User.ts
+++ b/src/User.ts
@@ -1 +1 @@
-const name = "Taro";
+const name = "Hanako";

-は削除された行、+は追加された行を表します。

単に変更されたファイルを知るだけでなく、「コードのどこがどのように変更されたのか」まで確認したい場合に便利です。

git logでコミットを絞り込む

コミット履歴が多い場合、すべての履歴を表示すると目的のコミットを探すのが大変です。

git logでは、件数、日時、Author、コミットメッセージなどの条件で履歴を絞り込めます。

-nで表示するコミット数を指定する

-nを使用すると、表示するコミット数を指定できます。

例えば、最新2件だけを表示する場合は次のように実行します。

git log -n 2

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

--onelineなどと組み合わせることもできます。

git log --oneline -n 2

# 実行結果
8a51c31 ユーザー登録機能を追加
27bf123 ログイン画面を追加

また、次のように数値だけを指定する書き方もできます。

git log -2

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

これも最新2件のコミットを表示します。

--since・--untilで期間を指定する

--sinceと--untilを使用すると、日時を条件にコミットを絞り込めます。

例えば、4日前から2026年10月1日までのコミットを確認する場合は、次のように実行できます。

git log --since="2026-09-28 00:00:00" --until="2026-10-01 23:59:59"

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

commit 6cd8912000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Tue Sep 29 09:00:00 2026 +0900

    初期コミット

--sinceは指定した日時より新しいコミット、--untilは指定した日時より古いコミットを表示するために使用します。

それぞれ、--afterと--beforeという別名もあります。

git log --after="2026-09-01" --before="2026-10-01"

# 実行結果
commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

commit 6cd8912000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Tue Sep 29 09:00:00 2026 +0900

    初期コミット

日付を指定して「最近変更されたコミットだけ確認したい」といった場合に便利です。

--authorでAuthorを指定する

--authorを使用すると、Authorの名前やメールアドレスに一致するコミットを絞り込めます。

例えば、Author名にTaroを含むコミットを表示する場合は次のように実行します。

git log --author="Taro"

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

Gitのコミットには「Author」と「Committer」という情報があります。

簡単にいうと、Authorは変更内容を作成した人、CommitterはそのコミットをGitの履歴へ記録した人を表します。

通常の開発では同じ人物になることも多いですが、リベースやパッチの適用などによって異なる場合があります。

Committerを条件にしたい場合は、--committerを使用します。

git log --committer="Taro"

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

--grepでコミットメッセージを検索する

--grepを使用すると、コミットメッセージから目的のコミットを検索できます。

例えば、コミットメッセージにtypoを含むコミットを確認する場合は次のように実行します。

git log --grep="typo"

# 実行結果
commit 73ab812000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 09:30:00 2026 +0900

    typoを修正

「バグ修正に関係するコミットを探したい」「特定の機能名が書かれたコミットを探したい」といった場合に便利です。

例えば、loginを含むコミットを検索する場合は次のように指定できます。

git log --grep="login"

# 実行結果
commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    login処理を修正

大文字・小文字を区別せず検索したい場合は、-iを組み合わせることもできます。

git log -i --grep="login"

# 実行結果
commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    LOGIN処理を修正

特定のファイルやディレクトリの履歴を確認する

git logの後ろにファイルやディレクトリを指定すると、そのパスに関係するコミットだけを確認できます。

特定のファイルの履歴を確認する

例えば、src/User.tsに関係するコミットだけを確認する場合は次のように実行します。

git log -- src/User.ts

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

--は、ここから後ろがファイルやディレクトリなどのパスであることをGitに明示するために使用します。

特定の種類のファイルを対象にする

パスのパターンを指定して対象を絞り込むこともできます。

例えば、scriptsディレクトリ内の.shファイルを対象にする場合は次のように指定できます。

git log -- 'scripts/*.sh'

# 実行結果
commit 73ab812000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 09:30:00 2026 +0900

    デプロイスクリプトを追加

シェルによって先にワイルドカードが展開されることを避けたい場合は、このようにパターンを引用符で囲むと分かりやすいでしょう。

--followで名前変更前の履歴も追跡する

ファイルの名前が途中で変更されている場合は、--followを使用できます。

git log --follow -- src/User.ts

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    User.tsへファイル名を変更

commit 73ab812000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 09:30:00 2026 +0900

    OldUser.tsを追加

--followを指定すると、Gitが検出できる範囲でファイル名の変更を越えて履歴を追跡できます。

なお、--followは1つのファイルを対象として使用します。

マージコミットを絞り込む

ブランチを使った開発では、通常のコミットだけでなくマージコミットも履歴に含まれることがあります。

git logでは、マージコミットだけを表示したり、逆に除外したりできます。

--mergesでマージコミットだけ表示する

マージコミットだけを確認したい場合は、--mergesを使用します。

git log --merges

# 実行結果
commit 5f42abc000000000000000000000000000000000
Merge: 27bf123 8a51c31
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 16:00:00 2026 +0900

    Merge branch 'feature'

例えば、「いつブランチがマージされたのか」を確認したい場合に便利です。

--no-mergesでマージコミットを除外する

反対に、マージコミットを除外して通常のコミットだけを表示したい場合は、--no-mergesを使用します。

git log --no-merges

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 73ab812000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 09:30:00 2026 +0900

    バリデーションを追加

この例では、マージコミットは表示されず、通常のコミットだけが表示されています。

--first-parentでマージ元の細かい履歴をたどらない

--first-parentを指定すると、マージコミットに到達したときに第1親だけをたどります。

git log --first-parent

# 実行結果
commit 5f42abc000000000000000000000000000000000
Merge: 27bf123 8a51c31
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 16:00:00 2026 +0900

    Merge branch 'feature'

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

commit 6cd8912000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Tue Sep 29 09:00:00 2026 +0900

    初期コミット

例えば、mainブランチへ複数のfeatureブランチをマージしている場合、featureブランチ内部の細かなコミットをすべて追うのではなく、main側から見た大きな履歴を確認しやすくなります。

--onelineと組み合わせると、より確認しやすくなります。

git log --oneline --first-parent

# 実行結果
5f42abc Merge branch 'feature'
27bf123 ログイン画面を追加
6cd8912 初期コミット

--allですべての参照からコミット履歴を確認する

通常のgit logは、基本的に現在のHEADからたどれるコミットを表示します。

他のブランチやタグ、リモート追跡ブランチなど、refs/以下の参照を含めて履歴を確認したい場合は、--allを使用できます。

git log --all

# 実行結果
commit 5f42abc000000000000000000000000000000000
Merge: 27bf123 8a51c31
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 16:00:00 2026 +0900

    Merge branch 'feature'

commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 73ab812000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 09:30:00 2026 +0900

    バリデーションを追加

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

特に--graph、--oneline、--decorateと組み合わせると便利です。

git log --all --graph --oneline --decorate

# 実行結果
*   5f42abc (HEAD -> main) Merge branch 'feature'
|\
| * 8a51c31 (feature) ユーザー登録機能を追加
| * 73ab812 バリデーションを追加
|/
* 27bf123 ログイン画面を追加
* 6cd8912 初期コミット

これにより、複数のブランチを含むコミット履歴をグラフ形式で確認できます。

特定のブランチのコミット履歴を確認する

git logの後ろにブランチ名を指定すると、そのブランチからたどれるコミット履歴を確認できます。

例えば、featureブランチの履歴を確認する場合は次のように実行します。

git log feature

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 73ab812000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 09:30:00 2026 +0900

    バリデーションを追加

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

現在そのブランチへ切り替える必要はありません。

リモート追跡ブランチを指定することもできます。

git log origin/main

# 実行結果
commit 5f42abc000000000000000000000000000000000
Merge: 27bf123 8a51c31
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 16:00:00 2026 +0900

    Merge branch 'feature'

commit 27bf1234567890abcdef1234567890abcdef1234
Author: Taro Yamada <taro@example.com>
Date:   Wed Sep 30 15:20:00 2026 +0900

    ログイン画面を追加

この例では、リモート追跡ブランチorigin/mainからたどれるコミット履歴が表示されています。

2つのブランチの差分となるコミットを確認する

git logでは、コミットやブランチの範囲を指定することもできます。

例えば、次のように指定します。

git log main..feature

# 実行結果
commit 8a51c31d6a78c91f20d1f9a4f6b18e7b8e123456
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 10:30:00 2026 +0900

    ユーザー登録機能を追加

commit 73ab812000000000000000000000000000000000
Author: Taro Yamada <taro@example.com>
Date:   Thu Oct 1 09:30:00 2026 +0900

    バリデーションを追加

この場合、featureからたどれるコミットのうち、mainからはたどれないコミットが表示されます。

つまり、「featureにあってmainにはないコミット」を確認したい場合などに利用できます。

--onelineと組み合わせると分かりやすくなります。

git log --oneline main..feature

# 実行結果
8a51c31 ユーザー登録機能を追加
73ab812 バリデーションを追加

ブランチをマージする前に、そのブランチで追加されたコミットを確認したい場合などに便利です。

git logの表示形式をカスタマイズする

git logでは、--prettyや--formatを使用して表示する情報をカスタマイズできます。

例えば、次のコマンドを実行します。

git log --pretty=format:"%h %an %ad %s" --date=short

# 実行結果
8a51c31 Taro Yamada 2026-10-01 ユーザー登録機能を追加
27bf123 Taro Yamada 2026-09-30 ログイン画面を追加

この例で使用している主なプレースホルダーは次のとおりです。

プレースホルダー内容
%H完全なコミットID
%h短縮されたコミットID
%anAuthor名
%aeAuthorのメールアドレス
%adAuthor Date
%sコミットメッセージの件名
%dブランチ名やタグ名などの参照名

表示形式を固定したい場合は、Gitのaliasと組み合わせる方法もあります。

本記事のまとめ

この記事では「git logコマンド」について、以下の内容を説明しました。

  • git logはGitのコミット履歴を確認するためのコマンド
  • --onelineや--graph、--decorateを使うと履歴を見やすくできる
  • --stat、--numstat、--name-status、-pなどで変更内容を確認できる
  • 日時、Author、コミットメッセージ、ファイルなどを条件に履歴を絞り込める
  • --merges、--no-merges、--first-parentなどでマージに関する履歴を整理できる
  • --allやブランチ名、main..featureなどを指定して確認する履歴の範囲を変更できる

git logには多くのオプションがありますが、すべてを一度に覚える必要はありません。まずはgit log --onelineで履歴を簡潔に確認し、必要に応じて--graphや--stat、-pなどを組み合わせるとよいでしょう。

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

スポンサーリンク