Conventional Commits とは - コミットメッセージ規約の書き方と導入手順

Conventional Commits はコミットメッセージに feat/fix 等の型を付与する規約。CHANGELOG 自動生成やセマンティックバージョニングとの連携方法を実例で解説

Git自動化

Conventional Commits とは

Conventional Commits は、コミットメッセージに type(scope): description の構造化フォーマットを適用する規約である。変更履歴 (CHANGELOG) の自動生成、セマンティックバージョニングの自動判定、コミット履歴の検索性向上を実現する。

フォーマット

フォーマットを図で示す。

<type>(<scope>): <description>

[body]

[footer]
feat(auth): add OAuth2 login with Google
fix(api): handle null response from DynamoDB
docs(readme): update installation instructions
refactor(db): extract connection pool to separate module
chore(deps): bump typescript from 5.3 to 5.4

BREAKING CHANGE: remove deprecated /v1/users endpoint

type の種類

type の種類を以下にまとめる。

type説明バージョン影響
feat新機能minor (1.x.0)
fixバグ修正patch (1.0.x)
docsドキュメントなし
styleフォーマット (動作に影響なし)なし
refactorリファクタリングなし
perfパフォーマンス改善patch
testテストの追加 / 修正なし
choreビルド、CI、依存関係なし
ciCI 設定の変更なし

BREAKING CHANGE がフッターにある場合は major (x.0.0) バージョンアップ。

commitlint で強制

commitlint で強制の例を示す。

npm install -D @commitlint/cli @commitlint/config-conventional
// commitlint.config.js
module.exports = { extends: ['@commitlint/config-conventional'] };
# .husky/commit-msg
npx commitlint --edit $1

規約に従わないコミットメッセージはブロックされる。

CHANGELOG の自動生成

CHANGELOG の自動生成の例を示す。

npx standard-version
# または
npx semantic-release
# Changelog

## [1.2.0] - 2026-04-01
### Features
- **auth**: add OAuth2 login with Google

### Bug Fixes
- **api**: handle null response from DynamoDB

セマンティックバージョニングとの連携

セマンティックバージョニングとの連携を図で示す。

feat → minor: 1.1.0 → 1.2.0
fix  → patch: 1.2.0 → 1.2.1
BREAKING CHANGE → major: 1.2.1 → 2.0.0

CI/CD パイプラインで semantic-release を使えば、コミットメッセージからバージョン番号の決定、タグ付け、npm publish、GitHub Release の作成まで自動化できる。

体系的に学ぶなら関連書籍を参照してほしい。

共有:

この記事は役に立ちましたか?

関連用語

関連する記事