Files
gh-anthropics-claude-claude…/commands/clean_gone.md
2025-11-29 17:55:28 +08:00

1.8 KiB

description
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.