Edited at

git log の表示とか色をがんばる

More than 3 years have passed since last update.


  • (追記 2014/10/09) 履歴見るのは tig や SourceTree のが快適だなーとやはり思うので Search Result of tag:tig - Qiita なども参考にしてみてください


    • tig だと履歴みるだけでなく stage/unstage が楽



  • (追記 2014/07/14) 最近は tig 使っちゃってるので、あまりこれのお世話にならなくなっている


やりたかったこと


  1. 表示色に reverse を使い視覚的なアクセントとして可読性をよくしたい

  2. カラー表示するために毎回 --color を指定しないで済ませたい


結果

もう少しターミナルアプリ側の色設定で低彩度寄りに調整したほうがいい気がする。

がんばった結果


1の解決 : オレオレ git log フォーマット を作った

$ git log --pretty=format:'%C(red reverse)%d%Creset%C(white reverse) %h% Creset %C(green reverse) %an %Creset %C(cyan)%ar%Creset%n%C(white bold)%w(80)%s%Creset%n%n%w(80,2,2)%b'

// 参考: man git-log の "PRETTY FORMATS" のあたり


  1. 上のようなカスタムフォーマットをつくった

  2. この長いカスタムフォーマットを毎回指定するのは面倒なので、プリセットとして追加

  3. フォーマット指定以外の便利そうなオプションも一緒に含めた alias を設定

// git log のフォーマットプリセット medium-reverse を新規作成

$ git config --global pretty.medium-reverse "format:%C(red reverse)%d%Creset%C(white reverse) %h% Creset %C(green reverse) %an %Creset %C(cyan)%ar%Creset%n%C(white bold)%w(80)%s%Creset%n%n%w(80,2,2)%b"

// 作成したプリセット名を試して有効化できたことを確認
$ git log --pretty=medium-reverse

// 細かい表示オプションも合わせて指定する alias 設定を作成
$ alias gl="git log --pretty='medium-reverse' --graph --name-status"



  • --graph : branch のグラフを表示


  • --name-status : commit に含まれるファイル名、ステータスを表示


2 の解決 : カラー表示をデフォルトに設定する

カラーにしてほしいに決まっている。

$ git config --global color.ui auto  

これで git log のみならず、git diff とか git status なんかの git コマンド全般でカラー表示が適用できるものは、勝手にカラーで表示してくれます。


あとがき

黒い画面と zsh が好きな、デザイン/軽めのフロントエンド担当です。

git クライアントは便利なものがたくさんありますが、ターミナルに慣れておくと次のようなメリットがあります。


  • OSを問わず使える


    • いつも使ってるアプリ以外ではあの機能どうやったら利用できるの、ということがない



  • git の仕組みを深い部分から理解する手助けになる


    • git についての資料や情報をみたとき、何を話しているのか理解しやすい



単色の文字がずらずら並んでいることにあまり抵抗はないという CUI のプロの方もたくさんいそうですが、主にデザインを扱う人間としては、素の git の設定のままではやはり見づらいと思います。

そこで、GUI のクライアントも 5,6個試しましたが 、CUI でもここまで出来るのなら必要ないな、と思うきっかけとなったのが今回の設定です。


どうでもいい話

この場合の pretty format ってどういうニュアンスなんでしょうね。

次のいずれの解釈も間違っている気がするけど、妥当なのがおもいつかない。


  1. かわいい形式

  2. かなり形式

  3. ほぼ完全に形式

  4. もう少しで形式

ディ・モールト 形式。