Gitでコミットの履歴を表示するコマンドgit log
はデフォルトのままだと見づらいですよね。カスタマイズしようと思ってgit help log
したところ、とても長い英語のマニュアルが表示されやがって絶望したので、カスタマイズ方法を日本語でわかりやすくまとめてみました(やさしい)。
結論
上記のような表示になりました。
次のようなオプションを設定しています。
git log --pretty=format:'[%ad %Cgreen%ar%Creset] %C(yellow)%h%Creset %s %Cblue%d' --date=format:'%Y-%m-%d %H:%M' --graph
これはあくまでも私好みの設定です。あなたが求めるgit log
は以下で説明するオプションを駆使してあなた自身で作ってください。
エイリアスの設定
この長いコマンドを毎回入力するのは大変なので、エイリアスを設定します。
git config --global alias.logg "log --pretty=format:'[%ad %Cgreen%ar%Creset] %C(yellow)%h%Creset %s %Cblue%d' --date=format:'%Y-%m-%d %H:%M' --graph"
以降、git logg
を実行すればカスタマイズされたログを表示できます。サブコマンド名logg
はお好みで他の名前にしてもOKです。
この設定は~/.gitconfig
に書き込まれています。
1行で表示 (--oneline
)
オプションを指定しないでgit log
を実行するとこんな感じです。冗長ですねー。嫌な感じですねー。
--oneline
オプションで1つのコミットを1行で表示できます。git log --oneline
を実行しましょう。
かなりスッキリしました。
コミットの流れをグラフィカルに表示 (--graph
)
コミットやマージの流れを視覚的にわかりやすく表示するのは--graph
オプションです。--oneline
と合わせてgit log --oneline --graph
を実行してみましょう。
書式を指定 (--pretty
)
--pretty
オプションで履歴の書式を設定できます。
組み込みの書式
--pretty=<format>
とすることで、組み込みの書式で履歴を表示できます。用意されている<format>
は次のとおりです。
- oneline
- short
- medium
- full
- fuller
- reference
- mboxrd
- raw
それぞれのフォーマットがどのように表示されるかは下記のページでご確認ください。
書式を自由にカスタマイズ
--pretty=format:'<string>'
とすることで、細かく書式を設定することができます。
<string>
で使用できる主なプレースホルダは次のとおりです。
%H | コミットハッシュ |
%h | コミットハッシュの省略形 |
%an | オーサー(コードを書いた人)の名前 |
%ae | オーサーのメールアドレス |
%ad | オーサーの日時(--date オプションで指定した形式) |
%ar | オーサーの日時(相対表示) |
%as | オーサーの日時(YYYY-MM-DD ) |
%cn | コミッター(コミットした人)の名前 |
%ce | コミッターのメールアドレス |
%cd | コミッターの日時(--date オプションで指定した形式) |
%cr | コミッターの日時(相対表示) |
%cs | コミッターの日時(YYYY-MM-DD ) |
%d | 参照名(カッコあり) |
%D | 参照名(カッコなし) |
%s | コミットメッセージのsubject(1行目) |
実行例
% git log --pretty=format:'%h %s'
4b4a672 Merge branch 'develop'
bf2bf52 [update] 茶柱機能の実装
bd7759d [add] config.phpの新規作成
e59e72e [update] お茶の温度設定機能機能の実装
187b46c [fix] お茶が熱すぎるバグの修正(#1)
ab5b97f Merge branch 'develop'
ac8d0f5 [update] お茶を沸かす機能の実装
3f83042 Merge branch 'develop'
92d296e [add] index.phpの新規作成
1ee6850 [update] README.mdに説明を追加
1390361 [add] README.mdの新規作成
色をつける
文字に色をつけるためのプレースホルダもあります。
%Cred | これ以降の文字を赤くする |
%Cgreen | これ以降の文字を緑にする |
%Cblue | これ以降の文字を青くする |
%Creset | 文字の色をリセットする |
%C(<color>) | これ以降の文字を指定した色にする 指定できる色の名前は normal , black , red , green , yellow , blue , magenta , cyan , white , default 16進数カラーコード( #000000 )で指定することも可能 |
日付の書式を指定 (--date
)
--pretty
で%ad
や%cd
を使用した場合の日付と時刻の書式を設定します。
組み込みの書式
--date=<format>
とすることで、組み込みの書式で履歴を表示できます。用意されている<format>
は次のとおりです。
relative
表示例: 2 days agoiso
表示例: 2022-10-19 20:57:59 +0900iso-strict
表示例: 2022-10-19T20:57:59+09:00rfc
,default
表示例: Wed, 19 Oct 2022 20:57:59 +0900short
表示例: 2022-10-19raw
表示例: 1666180679human
表示例: 3 days agounix
表示例: 1666180679
書式を自由にカスタマイズ
--date=format:'<string>'
とすることで日時の書式をカスタマイズすることができます。
<string>
部分は--date=format:'%Y-%m-%d %H:%M:%S'
のように strftime のフォーマットを使うことができます。
ブランチを指定
git log
は何も指定しなければ現在のブランチの履歴を表示します。ブランチを指定することで特定のブランチの履歴を表示することができます。
% git log #現在のブランチの履歴を表示
% git log <ブランチ名> #ブランチを指定
% git log <ブランチ名1> <ブランチ名2> ... #複数のブランチを指定
% git log --all #すべてのブランチを指定
表示の絞り込み
表示件数
% git log -n 10 #最新の10件を表示
% git log -10 #省略した記法
日付
% git log --after 3.days.ago #3日前以降のコミットを表示
% git log --after='3 days ago' #上記と同じ
% git log --since 3.days.ago #上記と同じ
% git log --since='3 days ago' #上記と同じ
% git log --before 2022-10-20 #2022-10-20以前のコミットを表示
% git log --until='2022-10-20' #上記と同じ
$ git log --after 2022-10-01 --before 2022-10-31 #2022-10-01から2022-10-31までのコミットを表示
オーサーまたはコミッター
% git log --author masawo #オーサー名またはそのメールアドレスが masawo を含むコミットを表示
% git log --author='masawo' #上記と同じ
% git log --committer masawo #コミッター名またはそのメールアドレスが masawo を含むコミットを表示
% git log --committer='masawo' #上記と同じ
コミットメッセージ
% git log --grep='foo' #コミットメッセージを検索 正規表現も使える
コメント