Custom Git-Flow
Tower's Custom Git-Flow template provides a fully working replacement for the traditional Git-Flow branching model, operating entirely within Tower without requiring any external CLI tools. This template gives you all the structure and benefits of Git-Flow while offering the customization flexibility that many users have requested.
Understanding Git-Flow
Git-Flow is a branching model designed by Vincent Driessen that defines a strict branching structure for project releases. The traditional Git-Flow model uses several types of branches:
Main branches include master
(or main
) for production-ready code and develop
for integration of new features.
Supporting branches consist of feature branches for developing new features, release branches for preparing new production releases, and hotfix branches for quickly patching production issues.
The Git-Flow model provides clear rules about which branches to create, how to merge them, and when to delete them, creating a robust framework for collaborative development and release management.
Tower's Custom Git-Flow Advantages
Unlike the traditional Git-Flow CLI tool, Tower's Custom Git-Flow template offers significant flexibility while maintaining the proven structure. You can customize virtually every aspect of the workflow to match your team's specific needs.
Complete customization allows you to modify branch naming conventions, merge strategies, and workflow steps. For example, many teams find the release branch concept unnecessary for their deployment process—with Tower's Custom Git-Flow, you can simply remove the release topic branch from your configuration.
No external dependencies means everything works directly within Tower. You don't need to install or maintain the git-flow CLI tool, and your entire team can use the workflow regardless of their command-line setup.
Visual workflow management provides Tower's intuitive interface for creating, finishing, and managing branches, making Git-Flow accessible to team members who prefer graphical tools.
Smart automation includes guided branch creation, automatic merge strategies, and dependency management that helps prevent common Git-Flow mistakes.
Common Customizations
Teams frequently adapt the standard Git-Flow model to better fit their development process:
Removing release branches works well for teams that deploy directly from develop or use continuous deployment practices where formal release preparation isn't necessary.
Simplifying branch naming by using shorter prefixes or different naming conventions that better match your team's terminology.
Adjusting merge strategies to use different approaches for different branch types, such as requiring merge commits for features but allowing fast-forward merges for hotfixes.
Modifying base branches to use different main branches or create additional environment-specific base branches beyond the traditional master/develop structure.
Getting Started with Custom Git-Flow
When you select the Custom Git-Flow template, Tower presents a configuration that matches the traditional Git-Flow structure. This includes:
- A
main
base branch for production releases - A
develop
base branch for feature integration feature/
topic branches that merge into develophotfix/
topic branches that merge into both main and develop- Optional
release/
topic branches for release preparation
You can modify any of these settings during initial configuration or adjust them later as your workflow needs evolve.
Proven Structure Custom Git-Flow builds on Vincent Driessen's well-established branching model while giving you the freedom to adapt it to your team's specific requirements.
Benefits Over Traditional Git-Flow
Tower's implementation provides several advantages over the command-line git-flow tool:
Visual branch relationships help team members understand the workflow structure and current development state at a glance.
Guided workflows reduce the learning curve for new team members and prevent common mistakes in branch creation and merging.
Flexible finishing options allow you to choose merge strategies and handling for each branch completion, rather than being locked into git-flow's predefined behavior.
Integration with Tower features means your Git-Flow workflow works seamlessly with Tower's pull request management, conflict resolution, and other advanced features.
When to Choose Custom Git-Flow
Custom Git-Flow works best for teams that need structured release management and clear separation between feature development, release preparation, and production hotfixes. It's particularly valuable when:
- You have multiple developers working on different features simultaneously
- You need to maintain multiple versions or support hotfixes to production while continuing development
- You want the proven structure of Git-Flow but need flexibility to adapt it to your specific requirements
- You prefer visual tools over command-line workflows
This template provides the discipline and structure that makes Git-Flow effective while giving you the customization options that the traditional CLI tool lacks.