Git Log コマンド
ドキュメント:
使い方
ドキュメント:
コミット履歴の閲覧 | Pro Git book [Official]
参考:
Git Log コマンドでコミット履歴のリスト化 – Qiita
オプション
参考:
Git Log のオプションあれこれ | 煙と消えるその前に
条件指定してコミットを絞り込む | Yanor.net/Wiki
特定のユーザ (author / committer) のコミットログのみ表示 | dackdive’s blog
指定した件数だけ表示する
-n
オプションに続いて最大表示件数を指定する。
$ git log -n 10
最新の1件だけ表示する。
$ git log -1
ドキュメント:
-n | Git Documentation [Official]
一行表示
コミットをそれぞれ一行ずつで表示する。
$ git log --oneline
ドキュメント:
--oneline | Git Documentation [Official]
範囲を絞り込む
指定したコミット以降の履歴を表示する。
$ git log 12345abcd..
特定のディレクトリ以下に変更があった履歴のみを表示する。
$ git log -- path/to/dir
参考:
Git でコミットログを絞り込んで表示する | まくまくノート
フォーマット
--pretty=format:"%h"
: ハッシュのみ表示する
--pretty=format:"%ad %C(yellow)%h%C(reset)%C(auto)%d%C(reset) %s"
: 日付ありで一行表示する
ドキュメント:
pretty-formats | Git [Official]
参考:
Git Log のエイリアスを設定 | 別館 子子子子子子 はてブロ部
コミットログの出力形式をカスタマイズする (git log --pretty, --date) | まくまくノート
美しき git log --graph のエイリアス | Hack Your Design!
Git Logs with Color and Graphs | Sweetmeat
How to Format Git Log to Generate Meaningful Information | Red Panthers
Git Log Format String Cheatsheet | Devhints
pretty format colors – Stack Overflow
How to emulate git log --decorate’s different colors per branch-type – Stack Overflow
color in git-log – Stack Overflow
How to configure ‘git log’ to show ‘commit date’ – Stack Overflow
ツリー構造を表示する
参考:
美しき git log --graph のエイリアス | Hack Your Design!
Git Graph を使ってターミナルでツリー構造を表示する | ピクセルデザイン
日時のフォーマットを指定する
ドキュメント:
--date=<format> – git-log | Git [Official]
参考:
任意の日付フォーマットで Git Log を表示する – Qiita
Git Log の oneline オプションだと commit 日が表示されないのよね | IwazerReport
author date と commiter date そして GitHub | shigemk2
ログの日付を yyyy/MM/dd HH:mm:ss 形式にしたい – teratail
How to change Git Log date formats – Stack Overflow
日時の範囲を指定する
参考:
Git Log で特定の期間のログだけを出力する方法 | gotohayato
指定日からの作業内容をテキストファイルに出力したい | かもメモ
How to get Git to show commits in a specified date range for author date? – Stack Overflow
get commits since a particular date based on commit date – Stack Overflow
How does git log --since count? – Stack Overflow
git log の活用
-p
オプション:diff
を表示する- パスの指定:
git log -- **/*.rb
git log --word-diff
: 字句単位のdiff
参考:
ファイルの変更履歴を確認/問題のコミットを特定! | WWW クリエイターズ
--name-only / --name-status
参考:
変更のあったファイル名を列挙する/内容の差分は表示しない – Qiita
削除/追加/変更されたファイル一覧を取得するには? – スタック・オーバーフロー
--stat
参考:
--diff-filter
参考:
削除されたファイルをコミット履歴から楽に探す便利コマンド | SUKEMATSU.NET
git diff のとき変更したファイルだけを確認する – Qiita
ソート順を指定する
ドキュメント:
Commit Ordering – git-log | Git [Official]
参考:
Can you order Git Log by commit timestamp? – Stack Overflow
How can I make Git Log order based on author’s timestamp? – Stack Overflow
逆順に表示する
履歴を逆順に表示するには --reverse
オプションを付与する。
使用例
特定のコミット以降を逆順に表示する。
$ git log --reverse --oneline 1234abc~..
参考:
コミットログを逆順/古い方から表示する (maeharin) – GitHub Gist
How do I find the next commit? (children of ref) – Stack Overflow
最初のコミットを確認する
最初のコミットのハッシュを表示する。
$ git rev-list --max-parents=0 HEAD
最初のコミットを確認する。
$ git log $(git rev-list --max-parents=0 HEAD)
参考:
How to show the first commit by ‘git log’? – Stack Overflow
コミットメッセージを grep する
--grep
オプションを使う。
$ git log -i --oneline --grep sprockets
参考:
コミットメッセージで Git Log を検索する – Qiita
コミットメッセージを検索する方法/コミットログでフィルタリング | DQNEO 起業日記
How to Effectively Search the Git Log | Aurelien Navarre
Search git logs (case-insensitive) | commandlinefu.com
git grep コマンド
Git 管理されているファイルを grep
する。
$ git grep -i sprockets
ドキュメント:
参考:
文字列検索、git grep と git log -S がとっても便利 – Qiita
ソースコードのコミット履歴を検索する方法 – スタック・オーバーフロー
How to grep (search) committed code in the Git history? – Stack Overflow
短縮ハッシュを確認する
HEAD
の短縮ハッシュを表示する。
$ git log -1 --format=%h
SHA ハッシュの長さを指定して履歴を表示する。
$ git log -10 --oneline --abbrev=7
参考:
abbreviated format length – Stack Overflow
色を付けない
--no-color
オプションを指定すると、出力に色が付かなくなる。
$ git log -10 --oneline --no-color
参考:
How to turn off color and remove the time in Git Log? – Stack Overflow
Don’t colorize the refs with git log --pretty when --no-color is specified – Stack Overflow
ファイルの差分が生じたコミットを検索する
-S
オプションを指定すると、指定した文字列の出現回数に変更があったコミット (各ファイルにおいて追加・削除が相殺しないコミット) を探す。
$ git --no-pager log --oneline -i -S sprockets
-S
オプション使用時に --pickaxe-regex
オプションを付けると、正規表現として探索する。
$ git --no-pager log --oneline --pickaxe-regex -i -S 'webpack(er)?'
-G
オプションを指定すると、差分の各行を正規表現で探索してヒットしたコミットを表示する。
$ git --no-pager log --oneline -i -G 'webpack(er)?'
オプション
-i
: パターンあるいは正規表現による探索で大文字小文字を区別しない
ドキュメント:
-S<string> – git-log | Git [Official]
--pickaxe-regex – git-log | Git [Official]
-G<regex> – git-log | Git [Official]
参考:
文字列検索、git grep と git log -S がとっても便利 – Qiita
ログから特定の文字列を含むコミットを採掘する | Hack Your Design!
How to Effectively Search the Git Log | Aurelien Navarre
削除したファイルの履歴を探す
--diff-filter=D
オプションを付けて git log
コマンドを実行する。
$ git log --diff-filter=D --oneline -- path/to/file
参考:
過去に削除したファイルを検索、復元させる方法 | rcmdnk’s blog
削除済みのファイルを履歴から見つける方法 | Public Constructor
削除されたファイルをコミット履歴から楽に探す便利コマンド | SUKEMATSU.NET
削除したファイルの削除 commit まで探索する Git Log のオプションがあった | F.Shibusawa
How to Find a Deleted File in the Project Commit History in Git | W3docs
How can I list all the deleted files in a Git repository? – Stack Overflow
How to find a deleted file in the project commit history? – Stack Overflow
差分を表示する
履歴と共に差分を表示する。
オプション
-p
-u
--patch
ドキュメント:
参考:
Ignore case differences with Git Log – Stack Overflow
まとめ
Git Log Times
git log
にコミット日を差し込む。
参考:
git-log-times: A Oneline Log Alternative with Dates, Times and Initials (mackyle) – GitHub Gist