Skip to content
Latchkey

Conventional Commit とは?

Conventional commit とは、type プレフィックスと説明のような構造化されたフォーマットに従ったメッセージを持つコミットのことで、ツールも人間もその意図を解析できます。

Conventional Commits は、一貫性のある機械可読な方法でコミットメッセージを書くための軽量な規約です。各メッセージを feat や fix のような type で始めることで、チームは履歴を追いやすくし、さらに重要なことに、ツールがバージョニングや changelog を自動化できるようにします。

フォーマット

Conventional commit のメッセージは、type、括弧内の任意の scope、コロン、そして短い説明で始まります。一般的な type には、機能を表す feat、バグ修正を表す fixdocsrefactortestchore があります。任意の本文とフッターで詳細を追加したり、breaking change を示したりできます。

Conventional commit のメッセージ

この構造は、習慣になってしまえば簡単に書けます。

Conventional commit messages
git commit -m "feat(auth): add password reset flow"
git commit -m "fix(api): handle empty response body"

構造が役立つ理由

一貫したフォーマットは履歴を一目で読めるようにし、ツールがそれを解釈できるようにします。type は各変更の性質を伝え、scope は関連する作業をまとめ、マークされた breaking change は major バージョンの引き上げを示します。人間にとっても利点があります。ログが明確で分類された記録として読めるのです。

CI/CD における conventional commits

自動化されたリリースツールは conventional commit のメッセージを読み取り、次のバージョンを決定して changelog を生成します。fix は patch の引き上げ、feat は minor の引き上げ、breaking change は major の引き上げを生み出し、いずれも手動でのバージョン編集は不要です。これによりコミットの規律が完全に自動化されたリリースパイプラインへと変わります。

規約の導入

  • 各メッセージを featfixdocs のような type で始めます。
  • 役立つ場合は、変更を領域ごとにまとめる scope を追加します。
  • ツールが major バージョンを引き上げられるよう breaking change をマークします。
  • リリースツールと組み合わせて履歴からバージョニングを自動化します。

重要なポイント

  • Conventional commit は構造化された解析可能なメッセージフォーマットに従います。
  • feat や fix のような type プレフィックスは変更の性質を伝えます。
  • リリースツールはそれらを読み取ってバージョニングと changelog を自動化します。

関連ガイド