πŸ• Reading time: 3 minutes

In my team we adopt a variant of Git Flow, with influences from Trunk-Based Development (TBD), optimised for Agile methodologies. This approach combines organisation and flexibility, improving the development and integration process. In this post I'll explain our strategy.

πŸ“Œ A Git repository structured on four levels

πŸ“Œ Merge strategy

Release history on master with squash merges: linear history and [RELEASE vX.Y.Z] tags

πŸ“Œ Advantages of this hybrid flow

  1. parent-to-child merges ensure branches always inherit the latest updates
  2. constant alignment avoids large conflicts at the end of development
  3. any conflicts are resolved in the child branches, keeping the parent branch clean
  4. thanks to the squash merge towards the parent branch, the main history isn't weighed down by intermediate commits
  5. you keep a clearer, more linear log, useful for debugging and rollbacks when needed
  6. the team can work in parallel on independent features
  7. alignment with continuous integration (CI/CD)
  8. suitable both for teams doing frequent releases (TBD) and for those working on more structured sprints

πŸ” Conclusion

This hybrid model between Git Flow and TBD turns out to be particularly effective in an iterative, sprint-based development context: it provides structured control over releases and, at the same time, a leaner management of features and merge strategy, in line with the principles of continuous integration.

πŸ“© Get in touch if you'd like a more detailed guide!

See you at the next pill! β˜•