| name | git-commit |
| description | Claudeがgitコミットを実行するためのスキル。「コミットして」「git commitして」「変更を記録して」などの指示があった場合、または作業の区切りでコミットが必要な場面で必ずこのスキルを使う。コミットメッセージの生成・stagingの選択・gitコマンドの実行まで一貫して担う。 |
Git Commit スキル
哲学
- 小さく、意味のある単位でコミットする。レビューしやすく、デグレの追跡が容易になる。
- 理由まで記録する。未来の自分やレビュアーへの贈り物。
- AIが面倒な部分を担う。メッセージ考案・理由の言語化はClaudeが行う。
コミットメッセージの書式
type: 何をしたか(体言止め)
なぜそうしたか。ユーザーから得た文脈をそのまま使う。
typeはConventional Commitsに従う:feat / fix / docs / style / refactor / test / chore / perf / revert
理由がない・自明な場合は1行目だけでよい。
良い例:
feat: ユーザー認証画面を追加
ログイン機能の実装に必要なため。
style: コードフォーマットを適用
悪い例: fix bug(内容不明)、いろいろ修正(粒度大きすぎ)、WIP(意味なし)
実行フロー
1. 変更を把握する
git status && git diff
2. stagingする
git add . は使わない。意味のあるまとまりを意識してファイル単位またはハンク単位で選ぶ。
git add <file>
git add -p <file>
バイナリ(画像等)はテキストと別コミットにする。Gitはバイナリの差分管理が苦手なため。
3. コミットを実行する
git commit -m "style: フォーマットを適用"
git commit -m $'feat: 〇〇を追加\n\n△△のため。'
4. 確認する
git log --oneline -5
吸収(amend / rebase)
typoや修正忘れなど「直前のコミットの続き」に見える変更は、新しいコミットを作らず吸収させる。独立した意図があるかどうかで判断する。
直前のコミットに吸収(push前のみ):
git add <file>
git commit --amend --no-edit
数コミット前に吸収(push前のみ):
git log --oneline -5
git commit --fixup=<commit-hash>
GIT_SEQUENCE_EDITOR=true git rebase --autosquash HEAD~N
push済みのコミットには使わない。履歴の書き換えは他の人の環境と衝突するため。
Claudeが確認するタイミング
自動判断せず、ユーザーに確認してから進む場面:
- 変更に複数の意図が混在していてコミットを分けるべきか迷う場合
- 変更が直前のコミットへの補足に見えて、吸収を提案したい場合
- バイナリとテキストが混在している場合