# /commit-staged ## 概要 stageされたファイルのみをコミットするためのコマンドです。適切なコミットメッセージを自動生成し、安全にコミットを実行します。 ## 動作 1. `git status`でstageされたファイルを確認 2. stageされたファイルがない場合は警告を表示して終了 3. `git diff --cached`でstageされた変更内容を確認 4. 最近のコミットメッセージを参照してスタイルを把握 5. 変更内容に基づいて適切なコミットメッセージを生成 6. コミットを実行 7. コミット結果を確認 ## 実装手順 ### ステップ1: 事前チェック ```bash # stageされたファイルを確認 git status --porcelain | grep "^[MADRCU]" ``` - stageされたファイルがない場合は終了 - unstageされた変更があっても無視(stageされたもののみを対象) ### ステップ2: 変更内容の分析 ```bash # stageされた変更の詳細を取得 git diff --cached # 最近のコミットメッセージのスタイルを確認 git log --oneline -10 ``` ### ステップ3: コミットメッセージの生成 変更内容を分析して以下の形式でメッセージを生成: - **feat**: 新機能の追加 - **fix**: バグ修正 - **refactor**: リファクタリング - **docs**: ドキュメントの更新 - **style**: コードスタイルの修正 - **test**: テストの追加・修正 - **chore**: その他の変更 ### ステップ4: コミット実行 ```bash # HEREDOCを使用してコミットメッセージを適用 git commit -m "$(cat <<'EOF' [生成されたコミットメッセージ] EOF )" ``` ### ステップ5: 結果確認 ```bash # コミット結果を確認 git status git log --oneline -1 ``` ## 注意事項 - stageされていないファイルは含まれません - 機密情報が含まれていないかチェックします - プリコミットフックが失敗した場合は再試行を提案します - pushは自動実行しません(ユーザーの明示的な指示を待つ) - 空のコミットは作成しません ## 使用例 ``` /commit-staged ``` このコマンドにより、stageされたファイルのみが適切なコミットメッセージと共にコミットされます。