よいコミットメッセージの書き方を考える。
Semantic Commit Messages
ベースにしたいのは Semantic Commit Messages だ。prefix を使って <type> (<scope>): <subject>
形式で書く。以下に type の例を抜粋する。
- feat: (new feature for the user, not a new feature for build script)
- fix: (bug fix for the user, not a fix to a build script)
- docs: (changes to the documentation)
- style: (formatting, missing semi colons, etc; no production code change)
- refactor: (refactoring production code, eg. renaming a variable)
- test: (adding missing tests, refactoring tests; no production code change)
- chore: (updating grunt tasks etc; no production code change)
テストコードのリファクタリングをしたときは refactor?test? みたいな悩みは存在する(今のところテストコードはすべて test に統一するようにしている)。
かつては似たような形式で、F: xxxx
のように prefix を一文字だけ使うチームにも所属していたが、単語を書いたほうがわかりやすいと感じる。
タイトルの書き方(subject)
フォーマットは Semantic Commit Messages に従うとして、次の課題は subject の書き方だ。言語は英語でいいだろうと思っているが、英語力が壁になっている。多くの例に触れていいものを集めていくに限る。
ルール
- 動詞ではじめる
- 現在形で書く
例
- avoid
- drop
- correct
- add
どこかにコミットメッセージを集めまくってるサービスがあったような気がするが思い出せない。
参考
もっとリッチなコミットメッセージは ロジカルなコミットメッセージの書き方|Zenn が参考になる。個人的には Emoji の利用が直感的ではないと思っているのでテキストだけで完結できると良いなという考え。拡張機能で解決しそうな気もする。