Tips Tutorials November 5, 2025 2 mins read

Git One-Liners: Amend, Squash, Bisect & Rebase

Master Git like a pro — from amend and squash to bisect and rebase. Learn clean one-liners for history rewriting, debugging, and safe force-pushing to keep your workflow fast and foolproof.

When you’re deep in development, every keystroke matters. Git is incredibly powerful, but most developers only use a small fraction of its potential. This post is your cheat sheet of practical Git one-liners for when you need to fix commits, rewrite history, or debug that mysterious regression fast.

Branching & Cleanup

Clean up stale branches in seconds:

git fetch -p && git branch --merged main | grep -v main | xargs git branch -d

This pulls the latest branches, prunes deleted ones, and removes any already merged into main.
Need to start fresh? Create a new branch from main instantly:

git checkout -b feature/cleanup origin/main

Rewriting History Safely

Made a typo in your last commit message? No need for drama:

git commit --amend -m "Fix: correct typo in README"

Want to combine several messy commits into one clean story?

git rebase -i HEAD~3

Pick “squash” for the commits you want to merge.
Always remember: if you’ve already pushed, you’ll need a safe force-push (see FAQ below).

Debugging with Git Bisect

You know the bug wasn’t there yesterday, but it’s haunting you today? Let Git find the culprit:

git bisect start
git bisect bad
git bisect good HEAD~10

Git will binary-search your history — you just mark each step as good or bad.
When done:

git bisect reset

You’ll know the exact commit that broke your app.

Release Chores (Tags & Changelog)

Tag a release and generate a quick changelog:

git tag -a v2.1.0 -m "Release 2.1.0"
git push origin v2.1.0
git log $(git describe --tags --abbrev=0)..HEAD --oneline

Perfect for automating release notes in CI/CD pipelines.

FAQ

🔐 Safe force-push?
Yes — use git push --force-with-lease. It updates only if your local branch is up-to-date, preventing overwriting teammates’ work.

🔄 Rebase vs Merge?
Rebase keeps history linear and clean — ideal for feature branches.
Merge preserves every branch as it happened — best for long-running development flows.

🆘 Recover from a bad reset?
Use the reflog, Git’s secret time machine:

git reflog
git checkout HEAD@{2}

Final Thoughts

Mastering Git isn’t about memorizing every command — it’s about knowing which one-liners can save your day when things go wrong. Whether you’re fixing a messy commit history, hunting down a bug with bisect, or prepping for a clean release, these tiny commands pack massive power.

Keep this list handy, share it with your team, and remember: clean commits build clean projects.

David Green

David Green