# Trunk Base Development
One liner:
*A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’ , resist any pressure to create other long-lived development branches by employing documented techniques. They therefore avoid merge hell, do not break the build, and live happily ever after.
Different types of development git workflow:
- GitHub flow
- Gitflow
- Trunk base development
Addressing issues with low and high volume of commits per day and CI and CD.
# GitHub flow my thoughts:
Simple and great for Fork vs Shared repo model
- Open source repo, only Maintainer have write to upstream and Contributors fork the repo.
- Shared repo, all Contributors including Maintainers.
Works well when you do not have control of individual Contributors
Use GitHub for distrubited approached and managed using
Upstream is the choke point for Maintaners to review PR. In other words, slow release cycles.
Leverage GitHub PR for rollbacks.
# Gitflow my thoughts:
- More structured and timing release. ie. Every 2 weeks or month or quarter.
- Concept of the dev, qa, release(production) branches
- More maintainance on Maintainers to keep the branches in snyc. More opportunity for complex git history and rollbacks are painful.
# Trunk base development my thoughts:
- Like GitHub flow but more fancy.
- Requires a mature dev team and DevOps team.
- Great for large internal dev orgs for small to large velocity of git commits a day volume.
- With all the quality checks it could possible for Continuous Delivery and Deployment with feature flags though.