Agent skill
merge-main-cleanup
This skill should be used when the user requests merging work into main and then deleting all other local and remote branches, keeping only main.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/merge-main-cleanup
SKILL.md
Merge Main Cleanup
Overview
Perform a full merge into main and then delete all other branches locally and on the default remote. Remove any worktrees tied to deleted branches.
When to Use
- User says to merge into main and keep only main.
- User wants a one-step cleanup of branches after merge.
Workflow
1) Validate repository state
- Run
git status --porcelainand stop if there are uncommitted changes. - Run
git rev-parse --show-topleveland work from that root. - Run
git fetch --all --pruneto sync branch state.
2) Determine base branch
- Prefer
main; if missing, usemaster. - Command:
git branch --list main master
3) Merge current branch into base
- Get current branch:
git branch --show-current. - If already on base, skip merge.
- Otherwise:
git checkout <base>git pull --ff-onlygit merge <current-branch>- Resolve conflicts if any, then complete the merge.
4) Push base to remote
- Push base:
git push origin <base>
5) Remove worktrees for non-base branches
- List worktrees:
git worktree list. - For each worktree whose branch is not
<base>, remove it:git worktree remove <path>
6) Delete all non-base branches (local + remote)
- Local branches (force delete, as requested):
- List:
git branch --format='%(refname:short)' - For each branch not
<base>, run:git branch -D <branch>
- List:
- Remote branches (origin):
- List:
git branch -r --format='%(refname:short)' | rg '^origin/' - For each remote branch not
origin/<base>, run:git push origin --delete <branch>
- List:
7) Verify only base remains
git branch -vvshould show only<base>.git branch -rshould show onlyorigin/<base>.
Notes
- This skill is intentionally destructive: it deletes all branches except base.
- If the remote is not named
origin, replace it accordingly. - If deletion of worktree files is blocked by policy, report and ask the user to remove them manually.
Didn't find tool you were looking for?