git log 使い方

コミットログを表示する

git log

とするとページャが起動して(設定による) コミットログが表示される。

パッチ形式のコミットログを表示する

コミットログと変更点のパッチ形式を表示するには「-p」オプションを使う。

git log -p

コミットログとファイルの変更の状態を表示する

git log --stat

とすると diffstat が表示される。また、

git log --name-status

とすると変更されたファイルの名前とステータスが表示される。

コミットログを指定した数だけ表示する

たとえば、最近のコミットログを 5 つだけ表示するには「-<num>」か「-n」オプションを使って

git log -5
git log -n 5

とする。

特定の範囲のコミットログを表示する

「<since>..<until>」で指定する。 たとえば、

git log 2b8db..c39be

のように指定する。

二つのコミット間の差のコミットログを表示する

ブランチ master と customize の片方にしかないコミットログを 表示するには

git log master...customize

とする。コミットがどちらのものなのかを表示するには 「–left-right」オプションをつける。

git log --left-right master...customize

ハッシュ値のところに「>」と「<」で表示される。

特定のファイルのコミットログを表示する

ファイル名を指定すればよい。必要ならば「–」で区切る。

git log file.txt
git log -- file.txt

いろんなフォーマットのコミットログを表示する

git log --pretty=short
git log --abbrev-commit
git log --oneline
git log --relative-date
git log --graph
git log --pretty=full
git log --pretty=fuller

それぞれ

  • コミット、著者、タイトルを表示する
  • コミット名を短縮形にする
  • 一行で表示する
  • 相対的な日時で表示する
  • コミット履歴のグラフで表示する
  • 著者に加えてコミッタを表示する
  • 著者、コミッタ、AuthorDate、CommitDate を表示する

コミットメッセージが正規表現にマッチするログを表示する

正規表現 regexp にマッチするログを表示するには

git log --grep=regexp

とする。他に次のオプションが使える。

  • 「–grep」を複数指定すると OR になる
  • AND にするには「–all-match」オプションを追加する
  • 「-i」オプションをつけると大文字、小文字を区別しない
  • 「-E」オプションで拡張された正規表現として解釈する

著者、コミッタを正規表現で検索してログを表示する

正規表現 regexp を使って

git log --author=regexp
git log --committer=regexp

とする。大文字、小文字を区別しないで検索するには「-i」をつける。

指定した時間に当てはまるログを表示する

指定した時間以降のログを表示するには「–since」または「–after」を使う。 また、指定した時間以前のログを表示するには「–until」または「–before」を使う。

git log --since=2011-2-6
git log --until=2011-2-6
git log --until=2011-2-6 --since=2011-2-4

コミットメッセージのログの表示順序を変更する

git log は標準では reverse chronological order で 指定できるログの順序としては、 topological order と date order がある。 これらの順序を使うにはそれぞれ「–topo-order」「–date-order」オプションをつける。

git log --topo-order
git log --date-order

また、「–reverse」オプションで逆順にすることができる。

git log --reverse

参考

  • man git-log

Tags of current page