feat: 新機能の追加
featタイプを使って新機能のConventional Commitsメッセージを書く方法を学びます。正しいフォーマット、説明のガイドライン、featと他のタイプの使い分けを解説します。
Type Examples
詳細な説明
feat コミットタイプ
featタイプは、プロジェクトに新しい機能やケイパビリティを導入するときに使用します。Semantic Versioningの観点では、featコミットはminorバージョンバンプ(例:1.2.0から1.3.0)をトリガーし、既存の動作を壊さずに新しい機能が追加されたことを示します。
メッセージの例
feat: add user authentication with OAuth 2.0
featを使うタイミング
以下の場合にfeatを使用します:
- 新しいAPIエンドポイント、ルート、ページを追加する
- 新しいUIコンポーネントや画面を導入する
- 新しいCLIコマンドやオプションを実装する
- 新しい動作を可能にする設定オプションを追加する
- 新しいモジュールやサービスを作成する
featを使わないケース
以下の場合はfeatを使用しないでください:
- パブリックインターフェースを変更せずに既存機能を修正する(
refactor) - 既存機能のバグを修正する(
fix) - 既存コードのパフォーマンスを改善する(
perf) - 既存コードにテストを追加する(
test)
説明のベストプラクティス
短い説明は以下を守ること:
- 命令形の小文字動詞で始める("add"、"added"や"adds"ではなく)
- 50文字以内に収める
- ピリオドで終わらない
- コミットが何をするかを記述し、どのようにするかではない
オプションのボディ付き
複雑な機能の場合、動機を説明するボディを追加します:
feat: add user authentication with OAuth 2.0
Implement Google and GitHub OAuth providers using Passport.js.
Users can now sign in without creating a password. Session
tokens are stored in HTTP-only cookies with a 7-day expiry.
ユースケース
アプリケーションに新しい検索機能を実装し終えたところです。検索はフルテキストクエリ、フィルター、ページネーションをサポートしています。チームに追加を明確に伝え、自動化ツールが正しいchanglogエントリとバージョンバンプを生成できるコミットメッセージが必要です。