Git Branching Strategies: Stop Committing to Main
The "Main" branch is sacred. It is your production code. If you break Main, you break the app for everyone. It's time to learn professional branching workflows.
Imagine this: It is Friday at 4:55 PM. You fix a small bug, type git commit -m "fix", and push directly to the main branch. Suddenly, the Slack channel explodes. The website is down. You just deployed a typo to production.
This is why we have Branching Strategies. A branching strategy is a set of rules that your team follows to write, merge, and ship code without stepping on each other's toes or breaking the live site.
main (or master). Always work on a copy of the code, and merge it back only when it is tested.
Strategy 1: GitHub Flow (The Modern Standard)
For 90% of web development teams in 2026, this is the default. It is simple, fast, and continuous.
How it works:
- Main is always deployable. It contains the live history.
- Create a Feature Branch from main (e.g.,
feature/login-page). - Commit your changes to that branch.
- Open a Pull Request (PR) to discuss the code.
- Once approved, merge it into main and deploy immediately.
Strategy 2: Gitflow (The Enterprise Classic)
Gitflow was the standard for a long time. It is robust but complex. It is great for software that has scheduled "Releases" (like mobile apps or desktop software), but overkill for websites.
It uses two long-running branches:
- Main: Stores the official release history.
- Develop: An integration branch for features.
Developers merge features into Develop. When Develop is ready, it is merged into a Release branch, and eventually into Main.
Strategy 3: Trunk-Based Development (The Expert Mode)
This is what Google and Facebook use. It is designed for speed. Developers work on short-lived branches (or directly on main if they are brave/automated) and merge to the "Trunk" (main) multiple times a day.
The Catch: You must have extremely robust automated testing. If the tests pass, the code goes live. Features are often hidden behind Feature Flags so they can be merged even if they aren't finished yet.
Comparison: Which Should You Choose?
| Strategy | Complexity | Best Use Case |
|---|---|---|
| GitHub Flow | Low | Web Apps, Startups, Continuous Deployment. |
| Gitflow | High | Mobile Apps, Enterprise Software with Versions (v1.0, v2.0). |
| Trunk-Based | Medium (High Automation) | High-performing Senior Teams (FAANG). |
The Pull Request (PR) Is Your Safety Net
Regardless of the strategy, the Pull Request is the most important step. It is not just about merging code; it is about Code Review.
A PR is where your team checks for logic errors, security flaws, and bad formatting before the code touches the sacred main branch. If you aren't doing code reviews, you aren't doing software engineering; you are just typing.
Conclusion
Git is not just a "Save" button. It is a communication tool. Choosing the right branching strategy ensures that your team moves fast without breaking things.
If you are a solo developer, start with GitHub Flow. It builds the habits that will get you hired.

Comments
Post a Comment