$ cat ~/.gitconfig (中略) [alias] graph =!git --no-pager log --graph --date-order -C -M --pretty=format:'%Cred<%h>%Creset %C(yellow)%ad%Creset %C(cyan)[%an]%Creset %Cgreen%d%Creset %s' --all --date=short | less -R -X $ git graph
参考
http://www.mediawiki.org/wiki/Git/aliases
core.pager
http://git-scm.com/book/ja/ch7-1.html#corepager
core.pager は、Git が log や diff などを出力するときに使うページャを設定します。more などのお好みのページャを設定したり (デフォルトは less です)
git config core.pager の謎
http://blog.livedoor.jp/kosugip/tag/lv
Debian/Ubuntu 環境で lv を入れる (apt-get する) と /usr/bin/pager が lv を向いてしまい, 何故か git がこちらを使っているようで, デフォルトでは lv はエスケープシーケンスを解釈しないため冒頭の現象が起きる. 環境変数 LV や設定ファイル ~/.lv で -c オプションを指定すれば色が付く
http://www.sixnine.net/roadside/less.html
less(1) のデフォルトでは、 各種の制御文字はキャレット表記を利用して表示されます。そのため 「ls --color」の出力を less(1) にパイプすると、 「ESC[」から始まる一連のエスケープシーケンスが混じってしまい、 大変なことになってしまいます。このような場合、 「-r」や「-R」を指定すれば制御文字がそのまま表示されるようになるため、 色表示もそのまま表示されるようになります。
Emacs のシェルモードで git log を最後まで表示させる
http://d.hatena.ne.jp/inouetakuya/20110615/1308138313
$ git --no-pager log
http://yumewaza.yumemi.co.jp/2010/07/git.html
若干修正
git log --graph --date-order -C -M --pretty=format:'<%h> %ad [%an] %Cgreen%d%Creset %s' --all --date=short
$ cat ~/.gitconfig (中略) [alias] graph = log --graph --date-order -C -M --pretty=format:'<%h> %ad [%an] %Cgreen%d%Creset %s' --all --date=short $ git graph
めも