Skip to content
cccskills
FreePublished on GitHub

git-clean-branches

Find Git branches that have been merged or inactive for a chosen period. Preview cleanup candidates, exclude protected branches, and delete local or remote branches using a selected base branch and confirmation options.

OriginalShow the original description

Safely find and clean up merged or stale Git branches with dry-run mode and custom base/protected branches support

See how to install

Good for

  • Find merged branches to clean up
  • Review branches with no recent commits
  • Clean up branches merged into a release
  • Exclude important branches from cleanup

Files included (1)

  • SKILL.md4.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Claude Command: Clean Branches

This command safely identifies and cleans up merged or stale Git branches. Runs in read-only preview (--dry-run) mode by default, requiring explicit instructions to perform deletions.


Usage

# [Safest] Preview branches to be cleaned without executing any deletions
/git-cleanBranches --dry-run

# Clean local branches merged to main and inactive for over 90 days (requires individual confirmation)
/git-cleanBranches --stale 90

# Clean local and remote branches merged to release/v2.1 (auto-confirm)
/git-cleanBranches --base release/v2.1 --remote --yes

# [Dangerous] Force delete an unmerged local branch
/git-cleanBranches --force outdated-feature

Options

  • --base <branch>: Specify the base branch for cleanup (defaults to repository's main/master).
  • --stale <days>: Clean branches with no commits for specified days (disabled by default).
  • --remote: Also clean remote merged/stale branches.
  • --dry-run: Default behavior. Only list branches to be deleted without executing any operations.
  • --yes: Skip individual confirmations and delete all identified branches directly (suitable for CI/CD).
  • --force: Use -D to force delete local branches (even if unmerged).

What This Command Does

  1. Configuration and Safety Checks

    • Update Information: Automatically executes git fetch --all --prune to ensure branch status is current.
    • Read Protected Branches: Reads the list of branches that should not be cleaned from Git config (see "Configuration" below).
    • Determine Base: Uses --base parameter or auto-detected main/master as comparison baseline.
  2. Analysis and Identification (Find)

    • Merged Branches: Find local (and remote if --remote is added) branches fully merged to --base.
    • Stale Branches: If --stale <days> is specified, find branches with last commit N days ago.
    • Exclude Protected Branches: Remove all configured protected branches from cleanup list.
  3. Report and Preview (Report)

    • Clearly list "merged branches to be deleted" and "stale branches to be deleted".
    • Without --yes parameter, command ends here, waiting for user confirmation to re-execute (without --dry-run).
  4. Execute Cleanup (Execute)

    • Only executed without --dry-run and after user confirmation (or with --yes).
    • Delete identified branches one by one, unless user chooses to skip in interactive confirmation.
    • Local: git branch -d <branch>; Remote: git push origin --delete <branch>.
    • If --force is specified, local deletion uses git branch -D <branch>.

Configuration (Configure Once, Use Forever)

To prevent accidental deletion of important branches (e.g., develop, release/*), add protection rules to the repository's Git config. The command reads them automatically.

# Protect develop branch
git config --add branch.cleanup.protected develop

# Protect all branches starting with release/ (wildcard)
git config --add branch.cleanup.protected 'release/*'

# View all configured protected branches
git config --get-all branch.cleanup.protected

Best Practices for Embedded Devs

  • Prioritize --dry-run: Develop the habit of previewing before executing.
  • Leverage --base: When maintaining long-term release branches, use it to clean feature or hotfix branches merged to that release.
  • Careful with --force: Don't force delete unless you're 100% certain an unmerged branch is useless.
  • Team Collaboration: Notify the team channel before cleaning shared remote branches.
  • Regular Runs: Run monthly or quarterly to keep the repository clean.

Why This Version Is Better

  • ✅ Safer: Default read-only preview with configurable protected branch list.
  • ✅ More Flexible: Supports custom base branches, perfectly fits release / develop workflows.
  • ✅ More Compatible: Avoids commands with inconsistent behavior across systems like date -d.
  • ✅ More Intuitive: Condenses complex 16-step checklist into a single command with safety options.
  • ✅ Consistent Style: Shares similar parameter design and documentation structure with /commit command.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

bmad-init

FreeSummary

Set up or update BMad-Method V6 in a project, detect older installations, fix a known output folder issue, and adjust Git ignore rules, with guidance on what to do next.

  • Installing BMad-Method V6 in a project
  • Updating an existing V6 installation
  • Checking for an older V4 installation
UfoMiao/zcf6.1KUpdated Aug 31, 2026

bmad-init

FreeSummary

Install or update BMad-Method (V6) in a project after checking existing installations. The skill also fixes a known output-folder issue, updates Git ignore rules, and provides next steps for using the installed workflows.

  • Set up BMad-Method (V6) for Claude Code
  • Run a quick update on an existing V6 installation
  • Check for an older V4 installation before setup
UfoMiao/zcf6.1KUpdated Aug 31, 2026

feat

FreeSummary

Guide new feature work from requirements and planning through revisions and implementation. Create Markdown plans with acceptance criteria, track progress, and ensure frontend tasks have a UI design before development begins.

  • Turn a feature idea into an implementation plan
  • Revise a plan based on feedback
  • Start implementation from an agreed plan
UfoMiao/zcf6.1KUpdated Aug 31, 2026

feat

FreeSummary

Turn feature requests into documented plans, revise them through discussion, and carry out implementation with progress tracking. Frontend work includes checking for a UI design and arranging design work when needed.

  • Turning a feature idea into a development plan
  • Revising a plan after feedback
  • Implementing tasks from an agreed plan
UfoMiao/zcf6.1KUpdated Aug 31, 2026

Find merged or inactive Git branches, preview cleanup candidates, and delete selected branches after confirmation. Choose a comparison branch, protect important branches with configurable rules, and optionally include remote branches.

  • Previewing branch cleanup candidates
  • Removing branches already merged into a release branch
  • Finding branches with no recent commits
UfoMiao/zcf6.1KUpdated Aug 31, 2026

git-commit

FreeSummary

Use Git changes to generate Conventional Commits messages, a format that labels each change by type, and create commits. The skill suggests splitting unrelated changes and supports explicit scope, type, sign-off, and amendments to the previous commit.

  • Generate a commit message from staged changes
  • Split unrelated changes into separate commits
  • Specify a commit type and scope
UfoMiao/zcf6.1KUpdated Aug 31, 2026

See all skills by UfoMiao

Report a problem with this skill