Skills

Clean Branches

Clean up unnecessary local branches and prune stale remote-tracking branches

Install

npx skills add dyoshikawa/rulesync --skill clean-branches -g -a claude-code -y
Repository
dyoshikawa/rulesync1.6k
Category
Engineering
Updated
3d ago
License
MIT
Context cost
Lightabout 446 tokens
Runs scripts
No, instructions only

What it does

Clean up unnecessary local branches and prune stale remote-tracking branches

Clean Branches

Clean up unnecessary local branches and prune stale remote-tracking branches.

Step 1: Inspect Current State

Run the following:

  • git branch --show-current
  • git branch --format='%(refname:short)'
  • git remote show origin
  • git branch -vv

Identify:

  • The current branch
  • The default branch (for example main or master)
  • Branches whose upstream has been deleted

After identifying the default branch, list branches already merged into it:

  • git branch --merged <default-branch>

If you want to use the remote-tracking branch as the source of truth, use:

  • git branch --merged origin/<default-branch>

Step 2: Refresh Remote State

Update remote refs and prune deleted remote branches:

git fetch --prune

If needed, also run:

git remote prune origin

Step 3: Select Branches to Delete

Delete only branches that are clearly unnecessary.

Safe candidates include:

  • Local branches already merged into the default branch you identified above
  • Local branches whose upstream branch is gone and are no longer needed

Never delete:

  • The current branch
  • The default branch
  • Branches that are not fully merged unless the user explicitly asks for force deletion

If there is any ambiguity, show the candidate branches to the user and ask for confirmation.

Step 4: Delete Branches

For merged branches, delete them safely:

git branch -d <branch-name>

Only if the user explicitly approves force deletion for unmerged branches, use:

git branch -D <branch-name>

Delete branches one by one, not with a broad wildcard command.

Step 5: Report Result

Summarize:

  • Which branches were deleted
  • Which branches were skipped and why
  • Whether stale remote-tracking branches were pruned

More in Engineering