Gitのコミットログで作業の振り返りをする
日報書くときに、トリアタマなので忙しくしてると直近の事以外何をしていたのかさっぱり忘れてしまう。
だいたいのことはGitのログとかチャットの会話履歴見れば思い出すので、抽出しやすいGitからログを抽出する。
git log --author=authorname --since=yesterday --format='- %s' --date=iso
出力例
- ほげほげふがふがにのぴよぴよにヒゲヒゲの不具合があったので修正
- ほげほげふがふがを実装完了
金曜日に浮かれて帰ってしまって日報書き忘れたとき、月曜日に何してたんだろうとか探すのに、上のだともちろんうまくいかないので、そういう時はsinceに与えてる文字列を2.dayとか3.dayとか指定する、ちゃんと抽出したい場合はuntilとかを指定すると良いと思う。
ただ、フォーマット覚えるのはめんどくさいので、Gitのエイリアスとして登録したり、SourceTreeのカスタム操作に登録したりすると便利だと思う。
実例
私の場合、日報用のログ書き出しはSourceTreeのカスタム操作を使用している。当日用のログを書き出すものと、1週間全部のログを書き出すものの2つ。
1週間全部のものだとどれがいつのコミットログなのかわからないので、formatに%adとかを入れておいて、ログを日付で選別できるようにしている。
git log --author=authorname --since=1.week --format='%ad - %s' --date=iso
- 出力例
2015-11-28 14:07:13 +0900 - ほげほげふがふがにのぴよぴよにヒゲヒゲの不具合があったので修正
2015-11-28 13:59:53 +0900 ほげほげふがふがを実装完了
このフォーマットだと日報にコピペとかしづらなるので、必要なコミットログだけ選んでから、検索に正規表現が使えるようなエディタで日時部分を置換(削除)する。
- 置換用文字列(行頭から、ハイフンスペースがあるまでを探す)
^.*?-\s
ほんとは日付ごとにまとめたりとかもできると思うのだけれど、シェル職人ではないのでこの辺りで諦めておく。