このページで分かること
git logの出力の各行が何を表しているか分かる- 一覧・変更ファイル・差分と、知りたい粒度で表示を切り替えられる
- ファイル・メッセージ・期間で履歴を絞り込める
- 表示形式を自分の読みやすい形に整えられる
第2部の10では、まだ記録していない変更を読みました。このページでは反対に、すでに記録した変更を読みます。コミットを重ねるほど、履歴は「いつ・誰が・なぜ変えたか」を引ける資料になります。
準備:第2部の10の変更を記録する
第2部の10で作った変更を、2つのコミットに分けて記録しておきます。draft.txt は練習用なので消します。
cd ~/git-practice
rm draft.txt
git commit -m "牛乳を豆乳に変更"
git add todo.txt
git commit -m "やることに銀行を追加"
1つ目の git commit では、第2部の10でステージに載せた memo.txt だけが記録されます。
git log の基本の出力
git log -n 2
# 出力:
# commit f27f4bb92692b4e9580ed935ab525c283333c1c9
# Author: Taro Yamada <[email protected]>
# Date: Thu Oct 22 00:32:34 2026 +0900
#
# やることに銀行を追加
#
# commit 9ec120469b007f31fbc0c60be476e7c26ed94ef7
# Author: Taro Yamada <[email protected]>
# Date: Thu Oct 22 00:32:34 2026 +0900
#
# 牛乳を豆乳に変更
-n 2 は「新しいほうから2件だけ」の指定です。付けなければすべてのコミットが新しい順に表示されます(長いときは q で終了します)。
| 行 | 中身 |
|---|---|
commit f27f4bb… |
コミットのハッシュ(40桁)。この記録を指すID |
Author: |
記録した人。第2部の06で設定した user.name と user.email |
Date: |
記録した日時。末尾の +0900 は日本時間であることを表す |
| 字下げされた行 | コミットメッセージ |
ハッシュは先頭の7桁程度だけで指定できます。ほかのコマンドでコミットを指すときは、f27f4bb のように短く書けば十分です。
表示の粒度を切り替える
知りたいことに合わせて、情報の量を変えます。
1行ずつ一覧する:–oneline
git log --oneline
# 出力:
# f27f4bb やることに銀行を追加
# 9ec1204 牛乳を豆乳に変更
# 1fe223f やることリストを作成
# c9990eb 買い物メモに卵を追加
# d9110b5 買い物メモを作成
コミットメッセージの1行目だけが表示されます。第2部の09で「1行目だけで何のコミットか分かるように書く」としたのは、この表示で読むためです。
変わったファイルを見る:–stat
git log --stat -n 1
# 出力:
# commit f27f4bb92692b4e9580ed935ab525c283333c1c9
# Author: Taro Yamada <[email protected]>
# Date: Thu Oct 22 00:32:34 2026 +0900
#
# やることに銀行を追加
#
# todo.txt | 1 +
# 1 file changed, 1 insertion(+)
差分まで見る:-p
git log -p -n 1
# 出力:
# commit f27f4bb92692b4e9580ed935ab525c283333c1c9
# (中略)
# やることに銀行を追加
#
# diff --git a/todo.txt b/todo.txt
# (中略)
# 歯医者を予約する
# +銀行に行く
差分の読み方は第2部の10と同じです。-p は出力が長くなるので、-n と組み合わせて件数を絞るのが基本です。
絞り込む
ファイルで絞る
git log --oneline -- memo.txt
# 出力:
# 9ec1204 牛乳を豆乳に変更
# c9990eb 買い物メモに卵を追加
# d9110b5 買い物メモを作成
-- のあとにファイル名を書くと、そのファイルを変えたコミットだけが表示されます。-- は「ここから先はファイル名」という区切りで、ファイル名とほかの指定が紛らわしいときの誤解を防ぎます。
メッセージで絞る
git log --oneline --grep="メモ"
# 出力:
# c9990eb 買い物メモに卵を追加
# d9110b5 買い物メモを作成
--grep はコミットメッセージの中を検索します。メッセージを具体的に書いておくほど、ここで見つけやすくなります。
期間・人で絞る
git log --oneline --since="1 week ago"
git log --oneline --author="Taro"
--since は「この日時以降」、--until は「この日時まで」です。"2026-10-01" のような日付も、"2 days ago" のような書き方も使えます。--author は名前かメールアドレスの一部に一致するコミットを表示します。
表示を整える
git log --format="%h %an %ad %s" --date=short -n 2
# 出力:
# f27f4bb Taro Yamada 2026-10-22 やることに銀行を追加
# 9ec1204 Taro Yamada 2026-10-22 牛乳を豆乳に変更
--format で、表示する項目と順番を決められます。%h は短いハッシュ、%an は記録した人の名前、%ad は日付、%s はメッセージの1行目です。--date=short で日付を YYYY-MM-DD の形にしています。
補足
よく使う組み合わせは、毎回打たずに短い名前を付けておけます(エイリアス)。設定方法は第10部の68で扱います。
早見表
| 知りたいこと | コマンド |
|---|---|
| 履歴をざっと見たい | git log --oneline |
| 最近の数件だけ見たい | git log -n 5 |
| 各コミットで変わったファイルを見たい | git log --stat |
| 各コミットの差分を見たい | git log -p -n 1 |
| あるファイルの履歴を見たい | git log --oneline -- ファイル名 |
| メッセージで探したい | git log --oneline --grep="語句" |
| 期間で絞りたい | git log --since="2026-10-01" --until="2026-10-31" |
| 記録した人で絞りたい | git log --author="名前" |
| 分岐の形も見たい | git log --oneline --graph |
| 表示形式を変えたい | git log --format="%h %ad %s" --date=short |
--graph は、ブランチが分かれたり合わさったりした形を記号で描きます。今は1本の流れなので * が縦に並ぶだけですが、第4部の22から意味を持ちます。
「ある語句がいつ追加・削除されたか」のように、差分の中身で探す方法もあります。第5部の31で扱います。
よくある疑問
Q. 日本語のファイル名が "\350\262\267…" のように表示されます。
A. Git は初期設定で、英数字以外のファイル名を記号に置き換えて表示します。次の設定で、そのまま表示されるようになります。
git config --global core.quotepath false
Q. 古いコミットの中身を、ファイルとして開いて見られますか?
A. git show ハッシュ:ファイル名 で、そのコミット時点のファイルの中身を表示できます(例:git show d9110b5:memo.txt)。ワークツリーのファイルは変わりません。
まとめ
git logは、コミットのハッシュ・記録した人・日時・メッセージを新しい順に表示する- ハッシュは先頭7桁程度で指定できる
--oneline・--stat・-pで、表示の粒度を切り替える-- ファイル名・--grep・--since・--authorで絞り込む--formatで表示形式を自由に整えられる
次のページ
12. .gitignore で除外する ── パスワードを書いたファイルや自動で作られるゴミファイルを、最初から記録の対象に入れない方法を見ます。
この記事の最終確認日: 2026年10月