clean-branches

star 320

Delete local branches whose remote has been deleted ([gone]), including their worktrees. Use for branch cleanup after merging PRs.

kdlbs By kdlbs schedule Updated 3/5/2026

name: clean-branches description: Delete local branches whose remote has been deleted ([gone]), including their worktrees. Use for branch cleanup after merging PRs.

Clean Branches

Remove local branches that have been deleted on the remote (marked [gone]), including any associated git worktrees.

Steps

  1. Fetch and prune remote refs:

    git fetch --prune
    
  2. List branches to identify [gone] status:

    git branch -v
    

    Branches with a + prefix have associated worktrees that must be removed before deletion.

  3. List worktrees for reference:

    git worktree list
    
  4. Remove worktrees and delete [gone] branches:

    git branch -v | grep '\[gone\]' | sed 's/^[+* ]//' | awk '{print $1}' | while read branch; do
      echo "Processing branch: $branch"
      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
      echo "  Deleting branch: $branch"
      git branch -D "$branch"
    done
    
  5. Report which branches and worktrees were removed. If none were [gone], say no cleanup was needed.

Install via CLI
npx skills add https://github.com/kdlbs/kandev --skill clean-branches
Repository Details
star Stars 320
call_split Forks 34
navigation Branch main
article Path SKILL.md
More from Creator