GitLab Flow
Instantly configure the popular GitLab Flow branch structure:
- "production" branch as the "Trunk"
- "feature" and "hotfix" branches for all new development
- "main" and "staging" branches for more complex releases
Start and integrate new features or fixes through a predictable, CI/CD-optimized workflow. Tower makes Merge Requests simple, ensuring your branches stay in sync and proactively warning you of potential merge conflicts.
Take absolute control over your GitLab Flow implementation with Tower Workflows!


Tower Workflows with GitLab Flow
Getting up and running is simple!

Step 1: Choose the GitLab Flow Preset
Select the "GitLab Flow" preset to configure Tower with the trunk, base, and topic branches of this workflow.
Step 2: Customize it!
Start with the GitLab Flow preset, then tailor everything to your team's exact needs.
Tower Workflows lets you fine-tune every aspect of your branching process:
- Add and remove Base and Topic branches.
- Keep branches updated by defining their parent.
- Define upstream/downstream merge strategies.
- Enable or disable merge commit creation.
- Enable or disable tag creation when integrating changes.


Step 3: Begin and Finalize Your Task
To begin, click the "Start..." option. This instantly creates and checks out a dedicated feature branch for your work.
When complete, click "Finish..." to integrate your changes. Upon a successful merge, your local branch will be automatically deleted.
Keeping Branches in Sync
With the parent branch set up, Tower can easily notify you whenever it's time to update your topic branch and inform you if any merge conflicts will occur during the process.
What is GitLab Flow?
GitLab Flow is a branching strategy that combines feature-driven development and feature branches with issue tracking and Continuous Integration/Continuous Delivery (CI/CD).
Developers create short-lived feature branches off the main branch, and once complete, they submit a Merge Request (MR).
Unlike GitHub Flow, it offers flexibility by optionally including environment branches (like staging or production) or release branches to manage deployments and stable versions.
Why use GitLab Flow?
- Enhanced Traceability: It tightly integrates the code workflow with issue tracking, ensuring every code change is directly linked to a business goal or bug fix via a Merge Request.
- Structured Testing: By using environment branches (e.g., main → staging → production), changes flow downstream, ensuring code is fully tested in each environment before being deployed to the next.
- Simplified Versioning: It provides a clear, managed way to handle both Continuous Delivery (by merging to environment branches) and Versioned Releases (by creating specific release branches for maintenance), reducing the complexity found in GitFlow.