読者です 読者をやめる 読者になる 読者になる

git log のフォーマット指定で区切り文字を指定する

git logには--prettyオプションが存在していて、フォーマットをカスタマイズできるようになっている。

カスタマイズするには

git log --pretty=format:""

として"の中にフォーマットを記述すればよい。
具体的は"%H %an %ad"とすると"コミットハッシュ Author Authorコミット日付"などと指定できる。

$ git log --pretty=format:"%H %an %ad"
5b9f417cca453f1d8df6baea95eb7a718da4e5c5 Ryoichi SEKIGUCHI Tue Jan 31 14:36:48 2012 +0900
ae4d7c4392e16ce41bff5141f2266fac901e63eb Ryoichi SEKIGUCHI Tue Jan 31 14:35:15 2012 +0900
bc0a8bb66446072f9e13d1d035012941cef1067f Ryoichi SEKIGUCHI Tue Jan 31 14:29:38 2012 +0900
b6fbf1dd0690345e867e381a2a02dc0238a6ce33 Ryoichi SEKIGUCHI Tue Jan 31 14:27:33 2012 +0900

他にも指定可能な要素があるのでそれはman git-logを参照。

出力に区切り文字を使いたい場合は区切り文字を指定するオプションがないので、任意の文字をprintする要素を利用する。
manには "%x00: print a byte from a hex code" と書かれているもの。

例えばタブ区切りにしたい場合には"%x09"を指定すればよい。

$ git log --pretty=format:"%H%x09%an%x09%ad"
5b9f417cca453f1d8df6baea95eb7a718da4e5c5        Ryoichi SEKIGUCHI       Tue Jan 31 14:36:48 2012 +0900
ae4d7c4392e16ce41bff5141f2266fac901e63eb        Ryoichi SEKIGUCHI       Tue Jan 31 14:35:15 2012 +0900
bc0a8bb66446072f9e13d1d035012941cef1067f        Ryoichi SEKIGUCHI       Tue Jan 31 14:29:38 2012 +0900