Skip to content
Skill Authoring
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.

BOOST
From plugin
claude-code
24616 skills14 agents16 commands10 MCP
Install
$ npx -y skills add fazxes/Claude-code --agent claude-code

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 withclaude-code

Disclaimer: This repository contains proprietary source code belonging to Anthropic that was unintentionally exposed via a source map file (.js.map) included in the official @anthropic-ai/claude-code npm package.

Get the whole plugin

Other commands on claude-code.