【コンベンショナルコミッツ】

Conventional Commits とは?

最終更新:
💡 変更の種類と概要を、コミットに書く

Gitのコミットメッセージを、変更の種類・概要などが読み取れる形式で書く規約。対応ツールと組み合わせ、変更履歴の生成やバージョンの決定に使う。

📌 このページのポイント
Conventional Commits:形式の例 feat (auth) : ログインを追加 タイプ スコープ(省略可) 概要 破壊的変更は、どのタイプでも示せる type/scope直後の ! またはフッター 対応ツールを設定して自動化へ 履歴生成・SemVerに沿う更新判断 破壊的変更 / feat / fix を読み取る
形式をそろえると、対応ツールが変更の種類を読み取れる。規約は自動リリースそのものではなく、ツールの設定と正しい変更の説明を組み合わせる。
ひよこ ひよこ
コミットメッセージって「修正した」とか「追加した」って書けばよくないの?
ペンギン先生 ペンギン先生
Gitはそのようなメッセージでも記録できるよ。Conventional Commitsは、何を変更したかを人とツールが読み取りやすくする規約なんだ。形式を決めることで、履歴の整理やリリース作業に使えるよ
ひよこ ひよこ
どんな形式なの?
ペンギン先生 ペンギン先生
「feat: ログイン機能を追加」「fix(auth): 入力チェックを修正」のように書くよ。featやfixが種類、括弧のauthは変更箇所を示すscopeで、省略可能。コロンの後に空白と概要を置く。本文やフッターを追加することもできるんだ
ひよこ ひよこ
破壊的変更はどう書くの?
ペンギン先生 ペンギン先生
例えば「feat(api)!: 古い応答形式を廃止」のように、コロンの直前へ!を付ける。あるいはフッターに「BREAKING CHANGE: 変更内容」と書くよ。どの種類のコミットにも破壊的変更を示せるので、featだけを見ると見落とすんだ
ひよこ ひよこ
CHANGELOGやバージョンも自動で決められるの?
ペンギン先生 ペンギン先生
対応ツールを設定すれば、コミット履歴を読み取って履歴を生成したり、バージョンの更新を判断したりできるよ。1.0以降のSemVerとの対応は、破壊的変更がメジャー、featがマイナー、fixがパッチ。規約通りに書くだけで、Gitが自動リリースするわけではないんだ
ひよこ ひよこ
チームで使うときはどう確認するの?
ペンギン先生 ペンギン先生
使う種類や変更箇所の表記をチームで決め、commitlintのようなツールに設定して確認できるよ。commitlintのローカルの案内は、commit-msgフックでメッセージを検査する方法だね。形式を通しても内容の正しさまでは保証されないので、変更の説明も確認しよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Conventional Commits」って出てきたら「変更の種類と概要を決まった形式で書く、コミットメッセージの規約」と思えばだいたいOK!
📖 おまけ:英語の意味
「Conventional Commits」 = 規約に沿ったコミット
💬 conventionalは「慣例・規約に沿った」という意味。コミットメッセージを人とツールが読み取りやすくするための仕様だよ

参考資料

← 用語集にもどる