Visual and practical guide to GitFlow for DevOps teams
← Back to Lesson 3: Version Control with GitGitFlow is a structured Git branching model designed to manage parallel development, releases, and hotfixes in a controlled manner. It is widely used in enterprise and DevOps environments.
At the core, the development model is greatly inspired by existing models out there. The central repo (origin) holds two main branches with an infinite lifetime:
origin: master origin: develop
Ideally develop branch is owned by development manager and master branch by SCM Leads. The master branch at origin should be familiar to every Git user. Parallel to the master branch, another branch exists called develop. We consider origin/master to be the main branch where the source code of HEAD always reflects a production-ready state.
We consider origin/develop to be the main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release. Some would call this the “integration branch”. This is where any automatic nightly builds are built from. When the source code in the develop branch reaches a stable point and is ready to be released, all of the changes should be merged back into master somehow and then tagged with a release number. How this is done in detail will be discussed further on. Therefore, each time when changes are merged back into master, this is a new production release by definition.