期間を指定して、GitのコミットログをCSV出力する

概要

ちょっと探したら、そういうことの出来る、素敵なWebサービスもありそうではあるのですが。

  • 開発者じゃない人に「今月の開発内容」のようなものを共有したい。
  • 開発メンバーごとに、どのくらい作業をしているかの目安を出したい。
  • 毎月、開発した内容を振り返るのに使える資料を簡単に作りたい。

ということで。

何となくGitのコミットログをCSV出力して、Google SpreadSheetとかExcelとかに貼り付けることを考えました。

やり方

コンソールでGitレポジトリのディレクトリを開き

git --no-pager log --since=2017-03-01  --until=2017-03-31 \
--pretty=format:"\"%ad\",\"%h\",\"%an\",\"%s\"" \
--date=short --no-merges --all --date-order > commits.txt

を実行。

(「2017-03-01」と「2017-03-31」の部分は、お好みの期間に書き換えてください)

これで、同ディレクトリに「commits.txt」というファイルが出力されます。

出力内容は

"日付","コミットのハッシュ","ユーザー名","コメント"

となります。

コマンドの中にある

--pretty=format:"\"%ad\",\"%h\",\"%an\",\"%s\""

の部分を変更することで、出力フォーマットは変更することができます。

コマンドの説明

  • --no-pager → ページャーを使わない
  • log → コミットログを表示
  • --since=2017-03-01 → 2017年3月1日から
  • --until=2017-03-31 → 2017年3月31日まで
  • --pretty=format:"\"%ad\",\"%h\",\"%an\",\"%s\"" → 出力フォーマット指定
  • --date=short → 日付を「yyyy-mm-dd」の形式で表示
  • --no-merges → 親のあるコミットを省略
  • --all → 全てのブランチやリモートのコミットを表示
  • --date-order → 時間順にソート

参考

http://qiita.com/harukasan/items/9149542584385e8dea75

http://dqn.sakusakutto.jp/2014/10/git_log_mine_this_month.html

http://blog.inouetakuya.info/entry/20110615/1308138313