Trunk-Based Git Model

What Is Trunk-Based Development?

To create high-quality software, we must be able to trace any changes and, if necessary, roll them back. In trunk-based development, developers frequently merge minor updates into a shared repository, often referred to as the core or trunk (usually the main or master branch). Within trunk-based development, developers create short-lived branches with only a few commits. This approach helps ensure a smooth flow of production releases, even as the team size and codebase complexity increase.

  • Main branch usage - Engineers actively collaborate on the main/master branch, integrating their changes frequently
  • Short-lived feature branches - Goal is to complete work on these branches quickly and merge them back into the main/master branch
  • Frequent integration - Engineers perform multiple integrations daily
  • Reduced branching complexity - Maintain simple branching structures and naming conventions
  • Early detection of issues - Integrations aid in identifying issues and bugs during the development phase
  • Continuous Delivery/Deployment - Changes are always in a deployable state
  • Feature toggles - Feature flags used to hide incomplete or work-in-progress featuresTrunk-Based Development
Trunk-Based Development (Image Source )

Benefits of Trunk-Based Development

Here are some benefits of trunk-based development: