Tower Help & Support

Typical use-cases

Tower's Custom Git Workflows are designed to adapt to real-world development needs, offering flexibility that goes far beyond traditional workflow patterns. Whether you want to replace existing tools like git-flow or create entirely new workflow patterns, Tower provides the foundation for implementing sophisticated branching strategies that match your team's specific requirements.

Customize Git-Flow with Tower Workflows

One of the most powerful applications of Tower's Custom Git Workflows is replacing or enhancing the traditional git-flow workflow. Tower Workflows can completely replace git-flow functionality while providing significantly more flexibility and customization options.

Full Git-Flow Replacement

You can configure Tower to replicate the entire git-flow pattern with main, develop, feature, release, and hotfix branches. However, unlike the traditional git-flow command-line tool, Tower gives you complete control over naming conventions, merge strategies, and branch behaviors.

This means you can maintain the familiar git-flow structure that your team knows while customizing aspects that didn't work perfectly for your specific needs. You might adjust merge commit settings, change branch prefixes, or modify how releases are tagged and deployed.

Streamlined Git-Flow for CI/CD

Many teams find that traditional git-flow includes unnecessary complexity for modern continuous integration and deployment workflows. With Tower's Custom Git Workflows, you can easily customize git-flow by removing components that don't add value to your process.

For example, you might eliminate release branches entirely, allowing features to merge directly into develop and then promote develop to main when you're ready for production deployment. This creates a more CI/CD-compatible workflow while retaining the organizational benefits of the git-flow branching model.

You can also adjust the hotfix process to better integrate with automated deployment systems, ensuring that critical fixes flow through your CI/CD pipeline efficiently while still maintaining the rapid deployment capabilities that make hotfixes valuable.

Web Development Flow

A common pattern in web development involves managing multiple environments with clear promotion paths from development through staging to production. Tower's Custom Git Workflows excel at implementing these patterns with built-in safeguards and automated synchronization.

Basic Multi-Environment Setup

Consider a web development workflow with four branch types that correspond to different environments and work types. This pattern provides clear separation of concerns while ensuring that changes flow predictably through your development pipeline.

In this setup, production serves as your trunk branch, containing the code that's currently running in your production environment. The main branch acts as a child of production and serves as your primary development branch where features are integrated and tested.

feature branches are children of main, providing isolated environments for developing new functionality. These branches allow developers to work on features without interfering with the main development line while ensuring that new work starts from a current foundation.

hotfix branches are children of production, enabling rapid fixes for critical production issues. This direct relationship ensures that hotfixes can be deployed quickly without waiting for features that might be in development.

Automatic Change Flow

The power of this setup becomes apparent when you enable Tower's auto-update functionality. Since main is configured as a child of production, any hotfixes merged into production will automatically trigger updates to main when you use Tower's "Finish" action.

This automatic flow ensures that critical fixes don't get lost and that your development branch always includes the latest production changes. Your team doesn't need to remember manual steps to keep branches synchronized—Tower handles the flow automatically while giving you visibility into what's happening.

Environment Promotion

When you're ready to promote changes from development to production, you can use Tower's upstream merge functionality to move changes from main into production. This might involve creating a merge commit that marks a specific release, or you might configure the workflow to automatically tag releases when they're promoted to production.

The beauty of this system is that it provides clear pathways for both planned releases and emergency fixes while maintaining the integrity of your production environment. Features go through the development and testing process on main before promotion, while hotfixes can bypass this process when necessary but still flow back into development automatically.

Scaling the Pattern

This basic web development pattern can be extended to support more complex needs. You might add a staging branch between main and production for additional testing, or create specialized feature branch types for different kinds of work like experiment branches for proof-of-concept work or refactor branches for code improvements.

You can also customize merge strategies for different branch types. Features might use squash merging for clean history, while hotfixes might preserve individual commits for better traceability. The flexibility of Tower's Custom Git Workflows means you can adapt the pattern to match your team's specific needs and preferences.

The key advantage of implementing these patterns with Tower is that once configured, the workflow becomes automatic and consistent across your entire team. New team members can quickly understand and follow the established patterns, while experienced developers benefit from reduced cognitive overhead and fewer manual synchronization tasks.