😺
【Git】コミットメッセージのprefix
コミットメッセージにプレフィックスを付けることで、変更の目的や内容を簡潔に伝えることができます。
今日はそのプレフィックスと使用例について紹介していきます。
プレフィックスの標準仕様
コミットメッセージのプレフィックスにはConventional Commitsという標準的な仕様があります。
多くのOSSプロジェクトや開発チームで採用されており、自動化ツールとの連携も容易になります。
この辺りも大変興味深いですが、今回は基本的なプレフィックスの紹介にとどめるので、興味のある方はぜひ、以下の公式サイトで詳しい内容をご覧ください。
参考: Conventional Commits - コミットメッセージの標準仕様(公式・日本語)
基本的なプレフィックス
では本題に移りましょう。
こちらはConventional Commits
で定義されている主要なプレフィックスです。
現場でもよく見かけるものばかりですね。
プレフィックス | 用途 | 使用例 |
---|---|---|
feat | 新機能の追加 | feat: ユーザー登録機能の実装 |
fix | バグ修正 | fix: ログイン時のセッション切れエラーを修正 |
docs | ドキュメントの更新・追加 | docs: READMEにインストール手順を追加 |
style | コードの意味に影響しない変更 | style: インデントをタブからスペースに変更 |
refactor | バグ修正や機能追加を行わないコード変更 | refactor: ユーザー認証処理のリファクタリング |
perf | パフォーマンス改善 | perf: データベースクエリの最適化 |
test | テストの追加・修正 | test: ユーザー登録のユニットテストを追加 |
build | ビルドシステムや外部依存関係の変更 | build: webpackの設定を更新 |
ci | CI設定ファイルやスクリプトの変更 | ci: GitHub Actionsのワークフローを追加 |
chore | その他の変更(ソースやテストファイルを変更しない) | chore: npmパッケージのアップデート |
revert | 以前のコミットを元に戻す | revert: "ログイン機能の変更"を元に戻す |
併せて使われるパターン
スコープ付きコミット
特定の機能やファイルに関する変更の場合
feat(auth): ログイン機能を追加
fix(api): ユーザー取得APIのエラーハンドリングを修正
docs(readme): インストール手順を更新
Issue番号付きコミット
GitHubのIssueと連携する場合
fix: #456 ボタンのスタイルが崩れる問題を修正
feat: #789 ダークモード機能を実装
これでコミット、プッシュすると、それぞれ#456
や#789
の該当のIssueのページにこのコミットが連携されて表示されるのでわかりやすくて良いですね。
使用例
実際のコミットメッセージでは、以下のように使用します。
新機能追加の例
feat: ログイン機能の実装
- ユーザー名とパスワードによる認証を追加
- セッション管理の実装
- ログインフォームのUIを作成
バグ修正の例
fix: #123 パスワードリセット機能のバグ修正
- リセットトークンの有効期限チェックを追加
- エラーメッセージの改善
ドキュメント更新の例
docs: API仕様書を更新
- 新しいエンドポイントの説明を追加
- レスポンス形式の例を修正
良い例
-
簡潔で明確:
feat: ユーザー検索機能を追加
-
Issue番号付き:
fix: #123 ログインボタンが動作しない問題を修正
-
スコープ付き:
refactor(auth): パスワード検証ロジックを整理
推奨しない例
-
曖昧:
fix: バグ修正
-
詳細すぎる:
feat: ユーザーがログインフォームに入力した情報を検証して...
-
複数の変更:
feat: ログイン機能追加とバグ修正とドキュメント更新
チェックリスト
- 適切なプレフィックスを選択している
- 変更内容が一目で分かる
- 50文字以内など、冗長にならず簡潔にまとめている
- 必要に応じてIssue番号を含めている
- チーム内で一貫性がある
プレフィックスを適切に使用することでコードの変更履歴が整理され、変更の目的内容も伝わりやすくなります。
プロジェクトやチームの方針によって書き方は変わるので、他の方がどう書いているか、どういうやり方をしているのか見て聞いて吸収していきたいですね。
参考リンク
今回の記事に関連する公式ドキュメントや参考情報です。
- Conventional Commits - コミットメッセージの標準仕様(公式・日本語)
- commitlint - Conventional Commitsの準拠をチェックするツール
- Gitのコミットメッセージの書き方 | POSTD - 良いコミットメッセージの書き方
Discussion