A Linear History Broke Our Production Deploy
A forced rebase wiped three hours of debugging work from our staging branch. The culprit? A senior developer who'd internalized "always rebase, never merge" as gospel. We recovered the commits from reflog, but the incident sparked a question: why do we treat linear history as non-negotiable?
Most Git tutorials preach rebase for its clean history. But clean doesn't mean correct. I've seen rebasing cause more problems than it solves—lost context in code review, botched conflict resolution that went unnoticed for days, and onboarding engineers who can't tell which commits actually shipped together.
Here's what happens when you test both approaches on the same messy feature branch.
The Rebase Promise vs Reality
Rebase rewrites history by replaying your commits on top of the target branch. The theory: you get a straight line of commits without merge bubbles.
git checkout feature-auth
git rebase main
Continue reading the full article on TildAlice

Top comments (0)