Git Branch Pruner
Overview
Safely identifies and removes merged, stale, and orphaned Git branches.
When to Use
- User asks to "clean up branches" or "delete merged branches"
- Branch list is too long to manage
How It Works
Step 1: Identify main branch
git branch --show-current git remote show origin | findstr "HEAD branch"
Step 2: List all branches
git branch -a --format "%(refname:short) %(upstream:short) %(committerdate:short)"
Step 3: Categorize
Merged: already in main/master Stale: no commit in 90+ days Orphaned: no upstream tracking Active: recent commits under 30 days
Step 4: Safe deletion
- Always show user what will be deleted first
- Exclude protected branches: main, master, develop, release/*
- Exclude branches with unpushed commits
- Ask for confirmation before deletion
Output Format
Merged branches (safe to delete): feature-old-login -> DELETE bugfix-typo-2024 -> DELETE
Protected (do not delete): main <- current develop
Commands: git branch -d (safe) or git branch -D (force) Remote: git push origin --delete branch-name