Commitizenを使ってもうコミットメッセージに迷わない


はじめに

gitのコミットメッセージをどう表現するかで迷うことが多々あります。
チームによってざっくりと指針が決まっているものの、明確ではない場合も多いのではないでしょうか?
私自身fix: chore: feat:などの接頭辞を使って書くことが多いですが、それぞれの接頭辞の意味を毎回ググっている気がします。特に chore:...
そんな悩みを Commitizenを使って解決したのでその備忘録として記します。

対象

もう実装は終わっているのに。。。なぜコミットするだけなのに。。。ここでこんなに時間を使わないといけないの。。。といった悩みを持っている方。

Commitizenとは?

CLIを使って対話的にコミットメッセージを作ることができます。
コミットメッセージのルールは angular.jsのコミットガイドラインが元になっているそうです。

コミットメッセージのフォーマット

コミットメッセージのフォーマットは以下のようになっています

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

対話の内容

はじめにcommit typeが聞かれます

その後はcommitに対しての質問をされます

一つ一つ答えていくと

こんな感じのコミットメッセージが出来上がります。

インストール

ローカルにインストールすることもできますが、今回はグローバルにインストールします。

$ npm install commitizen -g
$ npm install -g cz-conventional-changelog
$ echo '{ "path": "cz-conventional-changelog" }' >> ~/.czrc
$ exec $SHELL -l

以上のコマンドで簡単にインストールでき、

$ git cz

このコマンドでcommitzenがスタートします。

日本語化

日本語化もできるそうなのでお好みで設定してみてください。
https://www.npmjs.com/package/cz-conventional-changelog-ja