Git Cleanup banner
Trail of Bits Trail of Bits

Git Cleanup

Development community Advanced

Description

A Claude Code skill for safely cleaning up accumulated git worktrees and local branches.

Installation

Installs to ~/.claude/skills/git-cleanup/

Terminal
git clone --depth 1 https://github.com/trailofbits/skills /tmp/skills \ && mkdir -p ~/.claude/skills \ && cp -r /tmp/skills/plugins/git-cleanup ~/.claude/skills/git-cleanup

Clones the whole repository, because a skill folder can carry scripts and resources beside its SKILL.md.

Repository README

This is the README for trailofbits/skills, shared by 13 entries in this directory. It describes the repository, not this entry specifically.

git-cleanup

A Claude Code skill for safely cleaning up accumulated git worktrees and local branches.

What It Does

Analyzes your local git repository and categorizes branches/worktrees into:

  • Safe to delete: Branches fully merged into the default branch
  • Needs review: Branches with deleted remotes ([gone]) that may have local-only work
  • Theme-related: Groups of branches working on similar functionality
  • Keep: Active work with unpushed commits or untracked local branches

The skill uses a gated workflow requiring explicit user confirmation before any deletions.

When to Use

Invoke with `/git-cleanup` when you have accumulated many local branches and worktrees that need cleanup.

**Important**: This skill only runs when explicitly invoked. It will never suggest cleanup proactively or run automatically.

Safety Features

  • Two confirmation gates (analysis review, then deletion confirmation)
  • Uses safe delete (git branch -d) for merged branches; force delete (git branch -D) only for squash-merged branches where git cannot detect the merge
  • Blocks removal of worktrees with uncommitted changes
  • Never touches protected branches (main, master, develop, release/*)
  • Flags [gone] branches for review instead of auto-deleting

Installation

claude plugins:add trailofbits/skills/git-cleanup

Example

User: /git-cleanup

Claude: [Analyzes branches and worktrees]
        [Presents categorized tables]
        "I found 5 branches safe to delete, 2 needing review.
         Which would you like to clean up?"

User: "Delete the merged branches"

Claude: "I will delete these branches:
         - feature/auth
         - bugfix/login
         Confirm? (yes/no)"

User: "yes"

Claude: [Executes and reports results]