Back to list
inakam

recommit

by inakam

Raspberry Pi用dotfiles (bash based)

0🍴 0📅 Jan 17, 2026

SKILL.md


name: recommit description: ベースブランチからの差分コミットをリセットし、レビューしやすい粒度でコミットしなおすスキル。「コミットを整理して」「コミットをやり直して」「recommitして」「developからの差分で整理して」などと発言したときに使用する。git reset --softでコミットを一旦リセットし、論理的な単位で再コミットする。ベースブランチはデフォルトでmain/masterだが、ユーザー指定も可能。

Recommit

ベースブランチからの差分コミットをリセットし、レビューしやすい粒度でコミットしなおす。

ワークフロー

Phase 1: 現状確認

  1. ベースブランチを特定(ユーザー指定があればそれを使用、なければmain/masterを自動検出)
    # ユーザー指定がない場合
    git branch -r | grep -E 'origin/(main|master)$' | head -1
    
  2. ベースブランチからの差分コミットを確認
    git log --oneline <base-branch>..HEAD
    
  3. 差分の全体像を確認
    git diff <base-branch>..HEAD --stat
    
  4. AskUserQuestionで現状をユーザーに報告し、リセットの確認を取る

Phase 2: リセット

  1. ベースブランチとの分岐点を特定
    git merge-base <base-branch> HEAD
    
  2. git reset --softでコミットをリセット
    git reset --soft <merge-base-commit>
    
  3. リセット後の状態を確認
    git status
    

Phase 3: 再コミット

  1. git diff --cachedでステージされた全差分を確認
  2. 変更をレビューしやすい粒度でグループ化し、コミット計画を作成
  3. AskUserQuestionでコミット計画をユーザーに確認
  4. 計画に従って順次コミット実行
    • 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などの機密ファイルはコミット対象外とする

Score

Total Score

50/100

Based on repository quality metrics

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

Reviews

💬

Reviews coming soon