はじめに
こんにちは、minne事業部でwebアプリケーションエンジニアをしているkazuです。今回の記事は、コミットメッセージを書く時に、自分がこれまで愛用してきたgitmojiをやめた話をします。
そもそもminneの開発チームにおけるコミットメッセージのルール
minneの開発チームでは、コミットメッセージのルールは特にありません。
私がペパボに入社した当初、「逆か」というコミットメッセージもあったりなどして、意外とみんなカジュアルにコミットメッセージを書いているなと思っていました。なるべく実際に開発をする中でのプロセスをありのままに残していきたいという思いがあるのかなと思っています。
gitmojiとは
特にコミットメッセージのルールがないということで、これまで自分が個人開発などでは使ってきたgitmojiをminneの開発チーム内でも使っていました。
gitmojiとは、gitのコミットメッセージに絵文字を使うことで、コミットメッセージの内容を一目でわかりやすくするためのものです。 以下は個人開発のプロジェクトで、gitmojiを使っていた頃のコミットメッセージの様子です。
gitmojiを使っていた理由
可愛いからです。また、一目でどういう類の変更が分かりやすいという理由で、gitmojiを使っていました。
gitmojiをやめた理由
しかし、あるパートナーが、日記で「僕はgitmojiを使わない」と書いていて、その理由として、
- gitmoji内での絵文字の解釈を共通認識として持っていないと、絵文字を見て解釈する意味が異なる可能性があること
- ターミナル上で見るとかなり見づらくなること
「確かに、、」と思いました。何より、ターミナル上で見たときに確かに自分で見ても見づらいなと思いました。 よって、gitmojiをやめることにしました。
今どうやってコミットメッセージを書いているか
今はconventional commitを使っています。 以下のようなシンタックスでコミットメッセージを書きます。
<型: どの類の変更か>[スコープ: 特にどの部分の変更か]: <タイトル>
型の部分では以下が推奨です。
- fix:
- feat:
- docs:
- style:
- refactor:
- test:
以下は、conventional commitの公式リポジトリのコミットメッセージの様子です。
私は感動しました。接頭辞が短く端的なので、Github上で見ても分かりやすく、ターミナル上で見ても見やすいなと思いました。
ref: conventional-commits/conventionalcommits.org
Github上での様子 | ターミナル上での様子 |
---|---|
コミットメッセージに何を書くか
ここまで私は、gitmojiやconventional commitを取り上げて、コミットメッセージの外見上のわかりやすさや可読性の向上を図っていることについて書いてきました。
ですが、そもそもコミットメッセージの役割について、「(自分を含め)将来、他の開発者に、なぜその変更をする必要があったのかを共有すること」を残すことだとすると、どんなツールを使うかなどは数ある工夫の中の1つに過ぎず、まずはコミットメッセージの内容部分に何を書くかを考えるべきだと思っています。
例えば、私はconventional commitに則って、コミットメッセージを書くようになりましたが、以下のようなコミットメッセージだと、どのような理由で変更したのかがわかりません。良い工夫をしようとしているのに「(自分を含め)将来、他の開発者に、なぜその変更をする必要があったのかを共有すること」というコミットメッセージの役割を果たせていませんね。
fix: 修正
コミットメッセージは、変更した理由を残すために書くものです。何をどう変更したかはコードの差分を読めば分かるので、コミットメッセージにはなぜその変更をする必要があったか、を書くように意識しています。 以下のt-wadaさんのツイートをいつも参考にしています。
ref: https://twitter.com/t_wada/status/904916106153828352
コードには How
テストコードには What
コミットログには Why
コードコメントには Why not
まとめ
今回は、コミットメッセージを書く時にgitmojiを使うのをやめた話をしました。もしこのブログを見てくださって、gitmojiを使ってみたくなった方は、ぜひ使ってみてください。gitmoji-cliというcliツールがとても便利で、絵文字の検索・選択がスムーズにできるのでおすすめです。
最後まで読んでいただきありがとうございました。