# Git Cleanup

> Clean up local git branches and remotes accumulated from PR reviews. Use when the user asks to clean branches, remove stale remotes, or tidy up the local git state.

- Skill: `alibaba/git-cleanup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add alibaba/git-cleanup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alibaba/git-cleanup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: alibaba (https://skillmd.com/u/alibaba)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/alibaba/git-cleanup

---


# Git Cleanup

Clean local branches (except `main` and current branch) and non-origin remotes.
Useful after reviewing multiple PRs that leave behind tracking branches and contributor remotes.

## Workflow

### 1. Survey

Run these in parallel:

```bash
git branch
git remote
git status --short
git stash list
```

Present a summary of how many branches and remotes will be removed.

### 2. Safety Checks — Ask Before Proceeding

**Stop and ask for confirmation if any of these are true:**

- Current branch is NOT `main`
- Working tree has uncommitted changes or stashes
- Any branch is ahead of its upstream

List unmerged branches separately and let the user decide.

### 3. Delete Branches

```bash
# Safe delete first (fails on unmerged branches)
git branch | grep -v '^\*' | grep -v '^\s*main$' | xargs git branch -d 2>&1

# Force-delete only with explicit user approval
git branch -D <branch>
```

### 4. Remove Remotes

```bash
git remote | grep -v '^origin$' | xargs -I{} git remote remove {}
```

### 5. Confirm

```bash
git branch && echo "---" && git remote
```

Report what was cleaned up.

## Key Rules

- **NEVER** delete `main` or the current checked-out branch
- **NEVER** force-delete unmerged branches without user confirmation
- If in doubt, ask

