← スキル一覧に戻る

recommit
by inakam
Raspberry Pi用dotfiles (bash based)
⭐ 0🍴 0📅 2026年1月17日
SKILL.md
name: recommit description: ベースブランチからの差分コミットをリセットし、レビューしやすい粒度でコミットしなおすスキル。「コミットを整理して」「コミットをやり直して」「recommitして」「developからの差分で整理して」などと発言したときに使用する。git reset --softでコミットを一旦リセットし、論理的な単位で再コミットする。ベースブランチはデフォルトでmain/masterだが、ユーザー指定も可能。
Recommit
ベースブランチからの差分コミットをリセットし、レビューしやすい粒度でコミットしなおす。
ワークフロー
Phase 1: 現状確認
- ベースブランチを特定(ユーザー指定があればそれを使用、なければmain/masterを自動検出)
# ユーザー指定がない場合 git branch -r | grep -E 'origin/(main|master)$' | head -1 - ベースブランチからの差分コミットを確認
git log --oneline <base-branch>..HEAD - 差分の全体像を確認
git diff <base-branch>..HEAD --stat - AskUserQuestionで現状をユーザーに報告し、リセットの確認を取る
Phase 2: リセット
- ベースブランチとの分岐点を特定
git merge-base <base-branch> HEAD - git reset --softでコミットをリセット
git reset --soft <merge-base-commit> - リセット後の状態を確認
git status
Phase 3: 再コミット
git diff --cachedでステージされた全差分を確認- 変更をレビューしやすい粒度でグループ化し、コミット計画を作成
- AskUserQuestionでコミット計画をユーザーに確認
- 計画に従って順次コミット実行
git reset HEADで一旦アンステージ- 各コミット単位でステージ
- ファイル全体をステージする場合:
git add <file> - ファイル内の一部のみステージする場合:
git add -p <file>
- ファイル全体をステージする場合:
git commitで確定
git add -p の使い方
ファイル内の一部の変更のみをステージしたい場合に使用する。
git add -p <file>
各hunk(変更の塊)に対して以下のコマンドで操作:
| コマンド | 動作 |
|---|---|
| y | このhunkをステージ |
| n | このhunkをスキップ |
| s | このhunkをさらに分割 |
| q | 終了(残りは全てスキップ) |
ステージ状態の確認:
git diff --cached- ステージ済みの変更を表示git diff- 未ステージの変更を表示
コミット粒度の基準
- 1コミット = 1つの論理的な変更単位
- 機能追加、バグ修正、リファクタリングは別コミット
- 関連するファイルのみをまとめる
- テストコードは対応する実装と同じコミット
- 1ファイル内でも論理的に分離可能な変更は
git add -pで分割を検討
Conventional Commits形式
<type>(<scope>): <subject>
| type | 用途 |
|---|---|
| feat | 新機能追加 |
| fix | バグ修正 |
| docs | ドキュメントのみの変更 |
| style | フォーマット等の変更 |
| refactor | バグ修正でも機能追加でもない変更 |
| test | テストの追加・修正 |
| chore | その他の変更 |
注意事項
- リセット前に必ずユーザーの確認を取る
- リモートにpush済みのコミットの場合、再コミット後に
git push --force-with-leaseが必要になることを事前に警告する - .envやcredentials.jsonなどの機密ファイルはコミット対象外とする
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です