| created | "2025-12-16T00:00:00.000Z" |
| modified | "2026-04-19T00:00:00.000Z" |
| reviewed | "2026-01-16T00:00:00.000Z" |
| allowed-tools | Bash(git status *), Bash(git branch *), Bash(git stash *), Bash(git prune *), Bash(git gc *), Bash(git repack *), Bash(git fsck *), Bash(git rm *), Bash(du *), Read, Glob, TodoWrite |
| args | [--prune] [--gc] [--verify] [--branches] [--stash] [--all] |
| argument-hint | [--prune] [--gc] [--verify] [--branches] [--stash] [--all] |
| disable-model-invocation | true |
| description | Perform repository maintenance and cleanup - garbage collection, branch
pruning, stash cleanup, and integrity verification. Use when the user asks
to clean up the repo, run git gc, delete merged branches, prune old
stashes, verify repo integrity with git fsck, or shrink the .git directory.
|
| name | git-maintain |
Context
- Current branch: !
git branch --show-current
- Git status: !
git status --porcelain=v2 --branch
- Local branches: !
git branch -vv --format='%(refname:short) %(upstream:short) %(upstream:track)'
- Stash list: !
git stash list
- Repository size: !
du -sh .git
Parameters
Parse these parameters from the command (all optional):
--prune: Remove unreachable objects and optimize repository
--gc: Run git garbage collection (aggressive)
--verify: Verify integrity of git objects
--branches: Clean up merged branches only
--stash: Clean up stashes only
--all: Run all maintenance tasks (default if no flags specified)
Your task
Perform repository maintenance and cleanup based on the flags provided.
Step 1: Check for accidentally committed files
- Environment files, IDE files, dependencies, build artifacts, secrets
- Suggest adding to
.gitignore and removing with git rm --cached
Step 2: Update .gitignore
- Suggest common patterns if missing
- Offer to append missing patterns
Step 3: Delete merged branches (if --branches or --all)
- List and clean branches merged via GitHub PR
- Protect main, master, develop, staging, production
- Delete local branches safely with
git branch -d
- Require user confirmation before deleting branches
Step 4: Clean up redundant stashes (if --stash or --all)
- Show stash ages and context
- Suggest cleanup for old stashes (>30 days)
- Drop stashes from deleted branches
- Require user confirmation before dropping stashes
Step 5: Repository optimization (if --prune, --gc, or --all)
git prune
git gc --aggressive
git repack -ad
du -sh .git
Step 6: Verify repository integrity (if --verify or --all)
git fsck --full --strict
Report any issues found.
Step 7: Final summary
- Report all actions taken
- Show before/after metrics
Safe Operations
These operations are safe and non-destructive:
git gc - Garbage collection
git prune - Prune unreachable objects
git fsck - Verify integrity
These require user confirmation:
git branch -d - Delete branches
git stash drop - Drop stashes
See Also
- git-branch-pr-workflow skill for branch management patterns