Skip to content
Development
Command

/clean_gone

Cleans up all git branches marked as [gone] (branches that have been deleted on the remote but still exist locally), including removing associated worktrees.

From plugin
open-claudecode
93414 skills14 agents14 commands1 MCP
Install
> /plugin marketplace add LING71671/Open-ClaudeCode

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/clean_gone

Context preview

What this command does when you run it.

Cleans up all git branches marked as [gone] (branches that have been deleted on the remote but still exist locally), including removing associated worktrees.

Command definition

clean_gone.md
description: Cleans up all git branches marked as [gone] (branches that have been deleted on the remote but still exist locally), including removing associated worktrees.

Your Task

You need to execute the following bash commands to clean up stale local branches that have been deleted from the remote repository.

Commands to Execute

1. **First, list branches to identify any with [gone] status** Execute this command:

   git branch -v

Note: Branches with a '+' prefix have associated worktrees and must have their worktrees removed before deletion.

2. **Next, identify worktrees that need to be removed for [gone] branches** Execute this command:

   git worktree list

3. **Finally, remove worktrees and delete [gone] branches (handles both regular and worktree branches)** Execute this command:

   # Process all [gone] branches, removing '+' prefix if present
   git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do
     echo "Processing branch: $branch"
     # Find and remove worktree if it exists
     worktree=$(git worktree list | grep "\\[$branch\\]" | awk '{print $1}')
     if [ ! -z "$worktree" ] && [ "$worktree" != "$(git rev-parse --show-toplevel)" ]; then
       echo "  Removing worktree: $worktree"
       git worktree remove --force "$worktree"
     fi
     # Delete the branch
     echo "  Deleting branch: $branch"
     git branch -D "$branch"
   done

Expected Behavior

After executing these commands, you will:

  • See a list of all local branches with their status
  • Identify and remove any worktrees associated with [gone] branches
  • Delete all branches marked as [gone]
  • Provide feedback on which worktrees and branches were removed

If no branches are marked as [gone], report that no cleanup was needed.

Read more
Ships withopen-claudecode

完整开源的 Claude Code 项目 - 基于 Anthropic 官方源码重建 🌐 Languages: 中文 | English

Get the whole plugin