log で履歴を読む

《 Git & GitHub 完全ガイド 目次へ 》

このページで分かること

  • 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月

タイトルとURLをコピーしました