【コミットリント】
commitlint とは?
最終更新:
💡 設定した規約で、コミットメッセージを点検する
Gitのコミットメッセージを設定したルールで検査するツール。共有設定を使ってConventional Commitsなどの形式を確認できる。コミットを止めるにはGitフックなどへの組み込みが必要で、コードの品質や変更内容の正しさを保証するものではない。
📌 このページのポイント
- 検査対象はコミットメッセージで、適用ルールは設定で決める
- Conventional Commits用の共有設定や独自ルールを利用できる
- commit-msgフックに組み込めば、エラー時にコミットを止められる
- ローカルのフックだけでなくCIの検査も組み合わせられる
commitlintって何をチェックするの?
メッセージが設定した形式に合うかを見るよ。Conventional Commitsの例ならfeat: add loginやfix(api): handle errorsのような型・対象・説明を扱う。コードが正しく動くか、メッセージが実際の変更を正確に説明しているかまで保証する検査ではないんだ。
ルールに合わないとコミットできないの?
commit-msgフックで実行し、エラー終了した結果を使えばコミットを止められるよ。ツールを入れただけで全コミットが自動的に止まるわけではない。警告とエラーは設定で違い、ローカルのフックを迂回できる場合もあるのでCIでも確認するんだ。
どうやって設定するの?
独自のルールも作れる?
できるよ。たとえばscope-enumで対象名を限定し、scope-emptyの設定で省略も禁止する。許可する対象名だけを設定しても、空欄を必ず拒否するとは限らないんだ。長さやエラー・警告の扱いも選べるので、チームの規約へ合わせるよ。
バージョンやCHANGELOGも自動で作るの?
commitlint自身はメッセージの検査を担当する。別のリリース用ツールがメッセージを読めば、履歴やバージョンの自動化に使えるよ。Conventional Commitsではfeatがminor、fixがpatch、破壊的変更がmajorに対応するが、実際の公開は別ツールの設定や手順によるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「commitlint」って出てきたら「設定したコミットメッセージの規約を検査するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「commitlint」 = コミットメッセージのリンター
💬 commitとlintを合わせた名前。変更履歴のメッセージをルールで点検するツールだよ。