This page is part of my personal knowledge database, that helps me to store and navigate my learnings.
Read on here for details


Gitflow is a branch-based workflow for teams. It proposes to have a develop branch, from which developers create feature/name branches. xOnce the work within the feature branch is done, a pull request is created to merge the changes back into develop. The develop branch itself is regularly merged into trunk (usually main or master).

Gitflow is not necessarily tightly coupled to Git; any Version Control System that supports branching could be used.

The advantage of Gitflow is high-level of control when & which feature is being released (merged down to trunk). It also makes changes visible to the developer community and provides a entry point for discussion and learning.

The disadvantage of Gitflow is that parallel development in feature branches can easily create conflicting code changes, which can be very hard to solve and come with a high potential for mistakes, due to complexity combined with unclear ownership / responsibility.

Branch-based workflows in general are considered incompatible with Continuous Integration - i.e. unfitting for continuous work on code-bases in closed organizations - and discouraged in favor of Trunk Based Development. However, for open source, or “seasonal work”, the workflow is still viable, maybe ideal.