はじめに
git log
を見やすくする方法としては
git log を見やすくする - Qiita
などでも紹介されていますが、git log
のオプション整理と勉強も兼ねて、せっかくなので自分でしっくりくるフォーマットにまとめて見ました。
git log にくっつけるオプションたち
コマンド全体はこちら。
$ git log --all --date-order --date=format:"%Y-%m-%d" --graph --format=" <%h> %ad [%an] %C(green)%d%Creset %s"
使用したオプションたちは以下になります。
--all
全ブランチを表示する。
--date-order
コミット順で表示する。
(デフォルトは親子関係を元に表示順が決定される。)
--date=format:"<format>"
dateを指定フォーマットで表示する。
- %Y : 西暦4桁
- %y : 西暦2桁
- %m : 月2桁
- %d : 日2桁
その他のプレースホルダーはgit help log
でご確認ください(丸投げ)。
--graph
コミット履歴をラインで結んで可視化する。
--format="<format>"
コミットログの各情報の表示/非表示やフォーマットを指定する。
- %H : コミットハッシュ
- %h : コミットハッシュ(短縮版)
- %ad : Authorの日付
- %an : Authorの名前
- %d : HEADとブランチ
- %s : コミットメッセージ(の1行目)
- %C(<color> <style>) : 表示色のフォーマットを指定する。
- <color> : normal, black, red, green, yellow, blue, magenta, cyan, white
- <style> : bold(太字), dim(減光), ul(下線), blink(点滅), reverse(反転)
- %Creset : 指定した表示色を解除してデフォルトにする。
その他のプレースホルダーはgit help log
で略。
aliasに登録
無限回使用するのでaliasに登録しておくと便利です。
git config --global alias.tree 'log --all --date-order --date=format:"%Y-%m-%d" --graph --format=" <%h> %ad [%an] %C(green)%d%Creset %s"'
あとはgit tree
とするだけで↑が実行されます。
<format>を極めて僕の/私の考えた最強のtreeコマンドを作ろう!
オチ(蛇足)
そもそも何でこんなこと調べることになったかと言うと、
PC更新にあたってgitのconfigもお引越ししようと思ったのですが、
git config --globalをはじめどこを見てもtreeのaliasが見当たらない、という(しょーもない)ことがキッカケでした。
そもそも息を吸うように使っていたので完全にgit for windowsのデフォルトコマンドだと思い込んでいました。
しかも、確かに冒頭の記事を参考にしたはずなのですが、何故か自分の使用していたフォーマットと微妙に異なる(冒頭の図)。
昔のことすぎて何も思い出せないので、この際一から調べて同じフォーマットを再現しよう、ということになりました。
オチ(隙を生じぬ二段構え)
試しに旧PCでgit help tree
と叩いたら
'tree' is aliased to 'log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=short'
と吐き出しました。
一体、いつ、誰が、どこに定義したんだ。。。
諸々調べてた時間とは
改めてmanualページなどをちゃんと読む良い機会になりました。
参考
git help log
(manualページ)
git log を見やすくする - Qiita
git logを時間順にソートする
GoogleCloudPlatform/nodejs-docs-samples