Keeping your Git repo clean is underrated. I’ve seen teams drown in a sea of stale branches — some merged, some half-baked, some lost to time.
So here’s a practical cheatsheet I put together to manage local branches like a pro. If you’re tired of guessing what's merged and what's just wasting disk space, this one’s for you.
🔍 1. List Local Branches Merged into master
git branch --merged master
Why: These are safe to delete. Their commits are already in master
.
🔍 2. List Local Branches Not Merged into master
git branch --no-merged master
Why: These might have unmerged work. Review before deleting.
✅ 3. Check if a Specific Branch Is Fully Merged
git merge-base --is-ancestor your-branch master && echo "Merged ✅" || echo "Not merged ❌"
Why: Quick yes/no check without manually scanning logs.
🍒 4. See What’s Unique to Your Branch (git cherry
FTW)
git cherry master your-branch
-
+
= unique commit in your branch -
-
= already in master - No output = fully merged
🧼 5. Delete Local Branches
git branch -d your-branch # Safe delete (if merged)
git branch -D your-branch # Force delete (if unmerged)
Use with caution. Especially -D
.
☁️ 6. Delete Remote Branch
git push origin --delete your-branch
Why: Local cleanup is one thing. Don't leave junk on origin either.
⏱ 7. Sort Local Branches by Last Commit Date
git for-each-ref --sort=-committerdate --format="%(committerdate:short) %(refname:short)" refs/heads/
Why: Spot stale or abandoned branches quickly.
📊 8. One-Liner: Show Merged vs Not Merged Branches
echo "=== Merged ==="; git branch --merged master; echo ""; echo "=== Not Merged ==="; git branch --no-merged master
Why: Good for audits and cleanup days.
🧽 9. Auto-Delete All Safe-to-Remove Local Branches
git branch --merged master | grep -vE '^\*|master|main|dev' | xargs -n 1 git branch -d
Why: Deletes all merged local branches except the important ones (master
, main
, dev
, current branch).
🎯 Bonus Tip: Automate It
Add a script or alias for regular cleanup. Git hygiene = happier devs + cleaner merges.
Final Thoughts
Don’t let your repo turn into a graveyard of zombie branches. A few CLI tricks like these can keep things lean, understandable, and merge-conflict-free.
Got a favorite cleanup command or Git trick? Drop it in the comments — let’s trade war tools.
Top comments (1)
Useful indeed Thx 4 sharing