脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

git logをCHANGELOG用に整形するコマンド

コマンド

git log --pretty=format:"* %s [%an] %h" > CHANGELOG

例えばこんな感じのGit logがあったとしたら、

commit 8d4f2088263953a8d4b6d70e110060533c25c248
Merge: ad3406a b184bdd
Author: ********* <******************@gamil.com>
Date:   Thu Jul 18 15:06:28 2013 +0900

    foo

commit b184bddb06d4ac5911da4f15f1a569e5297ef9bc
Merge: 6cb1eed f27764c
Author: ********* <******************@gamil.com>
Date:   Thu Jul 18 15:05:17 2013 +0900

    bar

commit 6cb1eed34aa6028f73f0629412ffc309fd2207e5
Merge: fb91861 757017c
Author: ********* <******************@gamil.com>
Date:   Thu Jul 18 14:57:04 2013 +0900

    hoge

commit 757017ca7cb950e4dc3c3c0ee213e91c5f5a9cf2
Author: ********* <******************@gamil.com>
Date:   Thu Jul 18 14:53:42 2013 +0900

    fuga

commit fb918611001831a55ea1cbf19e80e127558fa60a
Author: ********* <******************@gamil.com>
Date:   Thu Jul 18 14:52:48 2013 +0900

    fizz

commit ad3406acbf666994dca7dee5b19bc2eb2c511955
Author: ********* <******************@gamil.com>
Date:   Thu Jul 18 14:35:10 2013 +0900

    baz

commit 968b4122d524bcd7bda6e92dcd1aeb2acb7d7107
Author: ********* <******************@gamil.com>
Date:   Wed Jul 17 22:03:25 2013 -0700

    Initial commit

(はてなのソース自動カラーリングに'git'が対応してるのをはじめて知った)

以下の整形コマンドを利用すると

git log --pretty=format:"* %s [%an] %h" > CHANGELOG

こんな風に整形してくれる

* foo [**********] 8d4f208
* bar [**********] b184bdd
* hoge [**********] 6cb1eed
* fuga [**********] 757017c
* fizz [**********] fb91861
* bazz [**********] ad3406a
* Initial commit [*********] 968b412