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