LoginSignup
2
3

More than 3 years have passed since last update.

git log をよしなに整形してコミットツリーを可視化する

Last updated at Posted at 2019-07-24

完成図がこちら。
スクリーンショット 2019-07-24 20.22.28.png

はじめに

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

2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3