This series of articles will discuss the software development strategy, specifically the Version Control Tool branching strategies.

A - Introduction

This article will discuss the comparisons between Trunk-based workflow and Gitflow. The content of this article

B - Comparisons between Git-Flow and Trunk-Based Developments

Philosophy

Philosophy

Team composition

Team composition

Product Type

Product Type

Authoring process

Authoring process

Deployment

Deployment

Release frequency

Release frequency

C - Git Flow Pros and Cons

When Does Git Flow Work Best?

When Can Git Flow Cause Problems?

D - Trunk-based Development Pros and Cons

When Does Trunk-based Development Work Best?

When Can Trunk-based Development Cause Problems?

E - Why Git Flow to Trunk-based: Merge conflicts and pain

It’s easy for development teams to find themselves with a tangled mess of branches that need to be merged with the mainline all at once. The longer multiple developers keep their code changes from mixing with each other, the higher the risk that those changes will conflict (through changes to common code).

It’s changes to common code that prevent Git from handling merges automatically and cause developers to experience the classic horrors of source control management: merge conflicts that waste time, lost changes that vanish entirely, and regression defects from removed code that somehow find their way back in. Part of why trunk-based development has grown in popularity is because it helps avoid these painful merge conflicts. We’ll unpack trunk-based development in greater detail later.

Feature branching

Trunk.based Development with feature flags

References