< Back to Blog

Tower 14 for Mac (Beta) β€” Custom Git Workflows

Tower 14 for Mac is now in beta! This update allows you to create custom Git workflows, enabling you to define and enforce the exact workflow that meets your project's needs.

We have spoken with many teams and learned that most struggle to develop their own ideal Git workflows. As a result, they often end up adapting generic solutions or creating systems that are difficult for everyone to follow.

If that resonates with you, you will definitely love this release! Tower 14 for Mac puts you in the driver's seat, allowing you to define trunk, base, and topic branches, as well as set merge strategies and various other options.

Think of this as creating your own system β€” such as git-flow β€” but with limitless possibilities! 😎

☝️ Tower 14 is currently in Beta. To try it out, simply change the Release Channel to "Beta" under Settings > Updates in the Tower for Mac application.

We're incredibly excited about the power and flexibility that Custom Git Workflows bring to Tower for Mac. As this feature is currently in beta, we invite you to join us in shaping its future by letting us know what you think!

All right, let's take a look at what's new – but first, let's recap why you should consider using a Git workflow if you don't have one already.

Why Workflows Matter

It is important to standardize your branching and merging practices so that you can create a predictable development environment. We feel this is key for a productive, enjoyable experience with Git, especially when collaborating with teams!

This standardization and predictability offer many advantages.

  1. Every team member can easily understand the repository's state and the purpose of each branch if you use clear naming conventions and well-defined merge behaviors.
  2. New colleagues can quickly grasp the project's specific Git conventions, leading to quicker onboarding.
  3. The entire team will become less prone to errors.

Workflows can (and should!) be automated, making this process even more beneficial to everyone β€” and this is exactly where Tower 14 comes in.

Setting Up a Custom Git Workflow

The heart of Custom Git Workflows lies in its flexibility. You can create a workflow tailored to your project, team size, and development methodology. They can be as simple or complex as you'd like!

The magic begins by clicking on the "Workflows" icon, now conveniently located on the left-hand side next to the "Services" and "Bookmarks" views.

Tower 14 –
Tower 14 – "Workflows" icon in the Toolbar


Here, you can set your preferred workflow by choosing from the following options:

  • Predefined workflows, such as git-flow or GitHub/GitLab Flow.
  • Other workflows like Graphite or GitFlow CLI.
  • The option to create any custom Git workflow you can imagine from scratch.

If your project already has a workflow in place, Tower will attempt to auto-detect it based on the existing branches.

Tower 14 – Select your Workflow
Tower 14 – Select your Workflow


To understand the power of this feature, let's explore an existing workflow β€” we will use git-flowβ€” and break down the extensive customization options available in Tower Workflows.

Tower 14 β€” Branch Workflow Configuration
Tower 14 β€” Branch Workflow Configuration


Look at all those options! Let's explore what they can do.

The first step is to define your core branches, i.e., your "trunk" (e.g., main, master) and "base" (e.g., develop, dev) branches so that you can establish the foundational structure of your repository.

☝️ If you want to learn more about "trunk", "base", and "topic" branches, we recommend reading this article.

Afterwards, you should define your "topic" branch types (e.g., feature, hotfix, release). For each topic branch type, you can set specific branch prefixes (e.g., feature/, hotfix/). This clarifies intent and ensures consistency across your team and can be used for automated checks and organization.

In the example below, we've added bugfix to our Workflow, which is not part of git-flow by default β€” a prime example of the customizability of this feature.

Tower 14 – Topic Branch Configuration
Tower 14 – Topic Branch Configuration


Next, you can take full control of how changes flow through your branches. You can now define distinct downstream merge strategies (merging the parent into your topic branch to keep it up to date) and upstream merge strategies (merging a branch into its parent to finalize topic branches).

Whether you prefer merge, rebase, or squash, Tower 14 lets you dictate the exact behavior for each merge scenario.

Tower 14 β€” Merge Strategy Configuration
Tower 14 β€” Merge Strategy Configuration


When merging upstream, you can also create a tag, which can be useful for releases or significant milestones. This makes sure critical points in your project's history are always marked.

Finally, you have the option to create a merge commit when integrating branches, ensuring a complete and traceable record of all integrations. For those who prefer a cleaner, linear history, you can opt out.

Tower 14 – Configuring Merge Commit and Tag Creation
Tower 14 – Configuring Merge Commit and Tag Creation

Starting and Finishing a Feature/Hotfix/…

Once your workflow is configured, you can easily get started with your work by clicking the "Workflows" button and choosing the appropriate option.

Tower 14 –
Tower 14 – "Start Feature"


Once the task is complete, you can either click the "Workflows" button again to finish the feature, or access the branch's context menu by right-clicking the mouse.

Tower 14 –
Tower 14 – "Finish Feature" in the Context Menu

Updating Branches

While you are working on a new feature, it's normal for the parent branch to receive new commits from other team members. To minimize the chance of encountering merge conflicts, you should integrate those changes frequently.

We have good news here: this is very easy when using Tower ✌️

Since Tower establishes a parent/child relationship between branches, you will see a yellow banner reminding you that you should update your child branches since there have been updates to the parent branch.

This feature is extremely useful for smoothly integrating your changes when you finish working on a feature or bug fix, so we recommend that you update your child branches often!

Tower 14 –
Tower 14 – "Update Branch" notification


In the update process, Tower will always inform you if there are any merge conflicts that need to be resolved.

Tower 14 –
Tower 14 – "Update Branch" dialog


TIP: Don't forget to establish dependencies between branches so that child branches receive updates from their parent branches when changes occur. You can right-click any branch at any time and set a different "Upstream" or "Parent Branch" to track.

Tower 14 – Track Parent Branch
Tower 14 – Track Parent Branch

Other Improvements

As usual, we have also taken the time to make some other enhancements behind the scenes.

Here is the list of improvements and bugs that we have worked on:

  • You can now use Stacked Branches with any Tower Workflow without the need to choose it as dedicated workflow.

We hope you enjoy this release! Happy committing! 😊

Not a Tower user yet? Download our 30-day free trial and experience a better way to work with Git!




PS: Did you know? Tower Pro is now free for students as well as teachers and educational institutions!

Your Download is in Progress…

Giveaways. Cheat Sheets. eBooks. Discounts. And great content from our blog!