チーム開発において、一貫性のあるコミットメッセージは、プロジェクトの履歴を理解しやすくし、変更履歴の自動生成やCI/CDのトリガーとしても役立ちます。Commitizen は、Gitのコミットメッセージを効果的に統一するためのツールで、対話的なプロンプトを通じてコミットメッセージの作成を支援します。
Commitizenとは
Commitizen は、コミットメッセージのフォーマットを強制し、開発者が一貫性のあるメッセージを作成できるようにするCLIツールです。対話形式でコミットメッセージの各要素(タイプ、スコープ、説明など)を入力できるため、手動でフォーマットを覚える必要がありません。
導入手順
1. Commitizenのインストール
まず、Commitizen CLIをグローバルにインストールします。
| |
これにより、git cz コマンドが利用可能になります。
2. コミットメッセージ規約アダプターのインストール
Commitizenを使用する際、どのようなフォーマットでコミットメッセージを記述するかを定義する「アダプター」が必要です。ここでは、Conventional Commits 規約に準拠したコミットメッセージを作成できる cz-conventional-changelog を使用します。
| |
次に、Commitizenがこのアダプターを使用するように設定ファイルを作成します。
| |
注意: この .czrc ファイルはユーザーのホームディレクトリに作成されます。プロジェクトごとに異なるアダプターを使用したい場合は、プロジェクトのルートディレクトリに package.json を作成し、config.commitizen.path を設定する方法もあります。
使用方法
通常の git commit コマンドの代わりに、git cz コマンドを使用してコミットメッセージを作成します。
| |
このコマンドを実行すると、対話型のプロンプトが表示され、コミットメッセージの各部分を選択・入力することができます。
| |
プロンプトの指示に従って、コミットのタイプ(feat, fix, docs など)、スコープ、短い説明、詳細な説明などを入力していくことで、Conventional Commits規約に沿ったコミットメッセージが自動的に生成されます。
Conventional Commitsの主なタイプ
feat: 新機能の追加fix: バグ修正docs: ドキュメントのみの変更style: コードのスタイルに関する変更(フォーマット、セミコロンなど)refactor: リファクタリング(バグ修正でも新機能でもないコード変更)perf: パフォーマンス改善test: テストコードの追加や修正build: ビルドシステムや外部依存に関する変更ci: CI/CDに関する変更chore: その他の雑多な変更(ビルドプロセスや補助ツールなど)revert: 以前のコミットの取り消し
Commitizenを導入することで、チーム全体でコミットメッセージの品質を向上させ、プロジェクトの管理をより効率的に行うことができます。