git-commit について
git-commitは、Conventional Commits形式で意味の明確なGitコミットを作成するスキルです。差分から種別、スコープ、簡潔なメッセージを決め、ステージングとコミット時の安全策も適用します。
主な機能
- 01ステージ済みまたは作業ツリーの差分分析
- 02コミット種別とスコープの選択
- 03簡潔なConventional Commitsメッセージの作成
- 04必要に応じたファイルのステージング
- 05リスクのあるGit操作への安全策
活用シーン
- 01機能や修正を範囲を絞ってコミット
- 02変更を論理的な単位にまとめる
- 03コミットメッセージで破壊的変更を記録
- 04秘密情報や未依頼の共著者表記の混入防止
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ buiducnhat/ cobrew --skill git-commitインストール後、Claude Code で/git-commitを入力して読み込まれたか確認します。
詳細
Conventional Commits による Git コミット
概要
Conventional Commits の仕様に従って、標準化された意味のある Git コミットを作成します。実際の差分を分析し、適切なタイプ、スコープ、メッセージを判断します。
Conventional Commit の形式
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
コミットのタイプ
| タイプ | 用途 |
|---|---|
feat | 新機能 |
fix | バグ修正 |
docs | ドキュメントのみ |
style | 書式やスタイルの変更(ロジックの変更なし) |
refactor | コードのリファクタリング(機能追加や修正なし) |
perf | パフォーマンスの改善 |
test | テストの追加や更新 |
build | ビルドシステムや依存関係 |
ci | CI や設定の変更 |
chore | メンテナンスやその他の作業 |
revert | コミットの取り消し |
破壊的変更
# Exclamation mark after type/scope
feat!: remove deprecated endpoint
# BREAKING CHANGE footer
feat: allow config to extend other configs
BREAKING CHANGE: `extends` key behavior changed
ワークフロー
0. コミットのコンテキストを読み込む
コミットのグループ分けとメッセージの規約に関連するプロジェクトのコンテキストだけを読み込みます。
docs/SUMMARY.mdがある場合は、最初に読みます。- Git、リリース、またはコード標準の規約に関連する詳細ドキュメントだけを読み込みます。
- コミットと実装の規約については、
Code Standardのドキュメントを優先します。 - ドキュメントの内容がコードやユーザーの意図と矛盾する場合は、大規模な変更を行う前に、利用可能な入力や質問を優先します。
1. 差分を分析する
# If files are staged, use staged diff
git diff --staged
# If nothing staged, use working tree diff
git diff
# Also check status
git status --porcelain
2. ファイルをステージングする(必要な場合)
ステージング済みのファイルがない場合、または変更を別の方法でまとめたい場合は、次のようにします。
# Stage specific files
git add path/to/file1 path/to/file2
# Stage by pattern
git add *.test.*
git add src/components/*
# Interactive staging
git add -p
シークレット(.env、credentials.json、秘密鍵)は絶対にコミットしないでください。
3. コミットメッセージを生成する
差分を分析して、次の内容を判断します。
- タイプ:どのような種類の変更ですか?
- スコープ:どの領域やモジュールに影響しますか?
- 説明:変更内容を一行で要約します(現在形、命令形、72 文字未満)。
4. コミットを実行する
# Single line
git commit -m "<type>[scope]: <description>"
# Multi-line with body/footer
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>
<optional body>
<optional footer>
EOF
)"
ベストプラクティス
- 1 つのコミットにつき、論理的な変更を 1 つにします。
- 現在形を使います。「added」ではなく「add」。
- 命令形を使います。「fixes bug」ではなく「fix bug」。
- Issue を参照します:
Closes #123、Refs #456 - 説明は 72 文字未満にします。
Git の安全プロトコル
- Git の設定は絶対に更新しないでください。
- 明示的な依頼がない限り、破壊的なコマンド(--force、hard reset)は絶対に実行しないでください。
- ユーザーから依頼がない限り、フックを絶対にスキップしないでください(--no-verify)。
- main/master への強制プッシュは絶対にしないでください。
- フックが原因でコミットに失敗した場合は、問題を修正して新しいコミットを作成してください(amend はしないでください)。
その他のルール
- ユーザーから依頼がない限り、共同作成者のトレーラーを自動的に追加しないでください。機密情報が含まれる可能性があります。コミットメッセージに
Co-authored-byトレーラーを追加する前に、共同作成者を含めるかどうかと、その共同作成者が誰かを必ずユーザーに確認してください。
コメント
Markdown 対応