The "Gitflow" Workflow

Gitflow is a strict, defined branching model designed to manage large projects and scheduled releases by separating development from release-focused work.

It relies on two permanent, core branches: main (or master), which only holds production-ready, tagged releases, and develop, which serves as the main integration branch for ongoing work. Developers create long-lived feature branches off of develop and dedicated release branches to prepare for new version rollouts.

This multi-branch structure is highly effective for teams requiring scheduled, infrequent releases and maintaining a rigorous history of versioned code.

How Gitflow Works

Gitflow – Overview

Base Branches

  • main: This is the ultimate source of truth, holding the code that is currently in production. Commits on this branch must be tagged with a version number and are the only commits considered official releases.
  • develop: This is the primary branch for all ongoing development. It integrates all completed features and reflects the latest deliverable state of the project for the next major release.

Topic Branches

  • feature/*: Used for all new functionality.
  • bugfix/*: Reserved for bugfixes.
  • release/*: Used to prepare a new production release. No new features are added here; it's strictly for polishing and bug fixing.
  • hotfix/*: Reserved for urgent, production-breaking fixes.
  • support/* (optional): Used to manage and maintain older, currently supported versions of the software that are still in use.

Keeping Feature Branches Updated with git-flow-next

Easily integrate new commits from your parent branch into your feature branch by simply typing git flow next update ✌️

Gitflow in the Tower Git Client

For more visual assistance, take a look at Tower, our native Git client for both Mac and Windows.

Tower allows you to set up any workflow configuration with just a few clicks, along with other advanced features such as:

  • Drag and Drop for Interactive Rebase.
  • Undo with a simple CMD+Z (CTRL+Z on Windows).
  • Branch review and branch comparison capabilities.
  • Git LFS (Large File Storage) and Submodule support.
  • Deep integration with major remote services like GitHub, GitLab, Bitbucket, and Azure DevOps.
Gitflow in Tower – Overview