soft-delete-git について
soft-delete-git は、現在の Git ブランチを安全に削除するスキルです。作業ツリーを確認してデフォルトブランチを更新し、squash マージ済みのプルリクエストを確認した場合に限り強制削除を行います。
主な機能
- 01未コミットの変更を確認
- 02現在とデフォルトのブランチを特定
- 03削除前にデフォルトブランチを更新
- 04通常は安全なブランチ削除を使用
- 05強制削除前に squash マージ済みのプルリクエストを検証
活用シーン
- 01完了した機能ブランチを安全に削除
- 02作業ツリーが汚れている場合にユーザーへ確認
- 03GitHub の squash マージ後のブランチを処理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rubenflamshepherd/ ruben-agent-skills --skill soft-delete-gitインストール後、Claude Code で/soft-delete-gitを入力して読み込まれたか確認します。
詳細
Git ブランチのソフト削除ワークフロー
呼び出し時の動作
ブランチ名を明示せずにこのスキルを呼び出した場合は、現在チェックアウトされているブランチを対象にします。このスキルの呼び出しは、ワークフローをすぐに開始する許可とみなします。どのブランチを削除するか尋ねる前に、作業ツリーを確認し、現在のブランチを特定してください。
ユーザーに進め方を尋ねるのは、次の場合に限ります。
- 作業ツリーに変更がある場合。
- 現在のブランチがデフォルトブランチである場合。
- 安全な削除に失敗し、強制削除に確認が必要な場合。
開始前に現在のブランチ名をユーザーに尋ねたり、確認を求めたりしないでください。
手順:
-
未コミットの変更を確認する
git status --porcelain作業ツリーに変更がある場合は停止し、ブランチを切り替える前に、どのように進めるか(コミット、スタッシュ、破棄)をユーザーに尋ねてください。
-
現在のブランチ名を取得する
git branch --show-currentすでにデフォルトブランチにいる場合、削除するブランチはありません。停止し、どのブランチを指していたのかユーザーに尋ねてください。
-
デフォルトブランチを特定する
git symbolic-ref --short refs/remotes/origin/HEADこれは例として
origin/mainを返します。デフォルトブランチはorigin/より後の部分です。参照が設定されていない場合は、mainを使用してください。 -
デフォルトブランチをチェックアウトする
git checkout <default-branch> -
最新の変更をプルする
git pull -
以前のブランチをソフト削除する
git branch -d <branch-name> -
ソフト削除に失敗した場合は、スカッシュマージを確認する
GitHub の「Squash and merge」でマージされたブランチでは、ブランチの先端がデフォルトブランチの祖先にならないため、
git branch -dは失敗します。ブランチの PR が実際にマージされているか確認してください。gh pr view <branch-name> --json state,mergedAt- PR の状態が
MERGEDの場合は、ユーザーに確認してから、git branch -D <branch-name>で削除します。 - それ以外の場合は、強制削除せずユーザーに対応を求めてください。
- PR の状態が
メモ:
- ソフト削除には小文字の
-dを使用します(未マージのブランチが削除されない安全な削除です)。 - 上記のスカッシュマージを確認できた場合を除き、大文字の
-D(強制削除)は決して使用しないでください。また、その場合もユーザーの確認後に限ります。 - このワークフローでは、削除を試みる前にデフォルトブランチが最新の状態であることを確認します。