git-clean-gone-branches について
リモート追跡ブランチが削除されたローカル Git ブランチを特定し、確認後に関連するワークツリーとブランチを整理するスキルです。リポジトリを管理する開発者向けで、削除前に対象一覧を提示します。
主な機能
- 01リモート状態の取得と整理
- 02リモートで削除済みのブランチを特定
- 03一覧を表示して削除前に確認
- 04関連ワークツリーとブランチを削除
活用シーン
- 01リモート側で削除済みのローカルブランチ整理
- 02ブランチ削除前の関連ワークツリー確認
- 03長期開発後のローカルリポジトリ整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ everyinc/ compound-engineering-plugin --skill git-clean-gone-branchesインストール後、Claude Code で/git-clean-gone-branchesを入力して読み込まれたか確認します。
同梱ファイルscripts/clean-gone
詳細
削除済みリモートブランチのクリーンアップ
リモート追跡ブランチが削除されたローカルブランチを、関連するワークツリーも含めて削除します。
ワークフロー
ステップ 1:削除済みブランチを検出する
検出スクリプトを実行して、最新のリモート状態を取得し、削除済みブランチを特定します。
bash scripts/clean-gone
スクリプトは最初に git fetch --prune を実行し、その後 git branch -vv を解析して : gone] とマークされたブランチを探します。
スクリプトの出力が __NONE__ の場合は、古いブランチが見つからなかったことを報告し、終了します。
ステップ 2:ブランチを提示して確認を求める
削除するブランチの一覧をユーザーに提示します。シンプルなリスト形式にします。
These local branches have been deleted from the remote:
- feature/old-thing
- bugfix/resolved-issue
- experiment/abandoned
Delete all of them? (y/n)
プラットフォームの質問ツール(Claude Code の AskUserQuestion、Codex の request_user_input、Gemini の ask_user など)を使って、ユーザーの回答を待ちます。質問ツールが利用できない場合は、一覧を提示してから、先に進む前にユーザーの返信を待ちます。
これは一覧全体に対する「はい」か「いいえ」の判断です。複数選択やブランチごとの選択肢は提示しないでください。
ステップ 3:確認されたブランチを削除する
ユーザーが確認した場合は、各ブランチを削除します。ブランチごとに、次の手順を実行します。
- 関連するワークツリーがあるか確認します(
git worktree list | grep "\\[$branch\\]") - ワークツリーが存在し、メインリポジトリのルートでない場合は、先に削除します:
git worktree remove --force "$worktree_path" - ブランチを削除します:
git branch -D "$branch"
進捗に合わせて結果を報告します。
Removed worktree: .worktrees/feature/old-thing
Deleted branch: feature/old-thing
Deleted branch: bugfix/resolved-issue
Deleted branch: experiment/abandoned
Cleaned up 3 branches.
ユーザーが拒否した場合は、その旨を伝え、何も削除せずに終了します。