gitのコミットメッセージをセマンティックに

以前友人とすすめていたプロジェクトで急にgitでcommitできなくなって何事かなと思ったら、commitlintというものが導入されていました。commitlintを使えば、commitメッセージが規約通りかどうかをチェックできます。さらにhuskyというものを組み合わせるとgit commitした際にhookでき、規約通りのcommitメッセージが書かれていないとgit commitを弾くことができます。

commitlintの導入方法

npm install -save-dev @commitlint/{cli,config-conventional}

以下のコマンドで、commitlint.config.jsを作成します。

echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

さらに、huskyをnpmインストールします。

npm install husky --save-dev

package.jsonに以下のフィールドを追加します。

{
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }  
  }
}

commitlintのルールをいくつか解説

fix:

バグの修正などのコミットの時に先頭につけるprefix

style:

スタイルの修正の時とかに先頭につけるprefix

feat:

featureの略で新機能追加の際につけるprefix

chore:

npm installなどで新しいパッケージをインストールした時などにつけるprefix

docs: Readmeの更新などドキュメントに関する更新の時につけるprefix

test:

テストコードを書いた時につけるprefix

refactor:

機能追加ではなく、内部的なロジックの改善の際につけるprefix

最後に

gitのcommitでも、正しくセマンティックにちゃんと書くというのが大事だなと今回の開発で気づかされました。これからcommitメッセージに気をつけて開発します!


Home