Why You Shouldn’t Use Merge Requests in Critical Systems
Edmar Fagundes
Senior Java Software Engineer | Kotlin | Spring Boot | React | Angular | AWS | Docker | Kubernetes | TypeScript | FullStack
In many teams today, Git workflows revolve around pull requests or merge requests. And for a lot of modern development, that makes sense — collaboration, automation, and fast delivery are essential.
But what if you're working on critical systems? Where downtime isn't an option, every deployment is high-stakes, and even the smallest bug could have serious consequences?
In these environments, standard Git flows — while popular — can introduce hidden risks.
Merge requests aren't always the answer. I’ll show you the method I use that’s safer and more controlled. It’s not trendy, but it's safe, controlled, and intentional — and it's helped us ship to production with confidence.
?? The Risk Behind Common Git Workflows
In most teams, developers create feature branches, open pull requests, and merge them into main or production after approval.
But in mission-critical systems, this flow can be dangerous:
Pull requests are great for teams and visibility, but they often mean trusting the branch state — and that’s a big leap when your system can’t afford surprises.
??? The Alternative Safer: Cherry-Pick + Controlled Rebase
Instead of relying on merge requests, a more surgical and deliberate Git process can be used:
1. Cherry-pick individual commits
Only the exact commits that are tested and approved go into production. Nothing more, nothing less.
领英推荐
git cherry-pick <commit-hash>
2. Rebase using common ancestor
To apply a group of commits cleanly, identify the common ancestor between the source and target branches. Then, rebase only the required commits to maintain a linear history and avoid unnecessary merge noise.
3. Use commit hashes for traceability
Each commit applied to production is documented along with its purpose, creating a simple and clean audit trail.
? Why This Workflow Works for Critical Systems
?? Comparison: Common Git Flow vs Our Approach
?? Final Thoughts
The default Git workflow isn't always the best fit for every context — especially in environments where precision, safety, and control matter more than speed.
If you're managing a critical system, ask yourself:
"Is the current Git process reducing risk — or just speeding things up?"
Cherry-picking and controlled rebasing go beyond Git commands — they reflect a disciplined approach to engineering with intent.
Senior Front-end Developer | React - NextJS - Typescript - NodeJS - AWS
4 天前Nice Post! Thank you for sharing!