【コミットリント】
commitlint とは?
💡 コミットメッセージの「校閲係」がチーム全体の履歴をきれいに保つ
📌 このページのポイント
- コミットメッセージの形式をルールに基づいて自動チェックするツール
- Conventional Commits形式(feat:, fix:, docs: など)を標準でサポート
- Huskyと組み合わせてcommit-msgフックで自動実行するのが定番の使い方
- 統一されたコミットメッセージがあると、CHANGELOGの自動生成やセマンティックバージョニングの自動化が可能になる
commitlintってコミットメッセージをチェックするの?メッセージに決まりなんてあるの?
あるんだよ。たとえば「feat: ログイン機能を追加」「fix: パスワードリセットのバグ修正」みたいに、先頭にカテゴリをつける「Conventional Commits」という書き方のルールがあるんだ。commitlintはこのルールに沿っているかを自動チェックしてくれるよ
ルールに合わないとどうなるの?
コミットが拒否されるんだ。たとえば「修正した」みたいにカテゴリなしで書くと「type may not be empty(タイプが空です)」とエラーが出る。最初は面倒に感じるけど、慣れると履歴がとても見やすくなるよ
どうやって設定するの?
コミットメッセージを統一すると何がいいの?
最大のメリットは自動化だよ。「feat:」があればマイナーバージョンアップ、「fix:」があればパッチバージョンアップ、みたいにsemantic-releaseと組み合わせてバージョニングを完全自動化できるんだ。CHANGELOGの自動生成もできるよ
独自のルールを作ったりもできるの?
まとめ:ざっくりこれだけ覚えればOK!
「commitlint」って出てきたら「コミットメッセージのルールを自動チェックするツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「commitlint」 = コミットのリンター
💬 commit(Gitコミット)+ lint(コードの静的チェック)を組み合わせた名前で、「コミットメッセージにリンターをかける」という意味だよ