Stacked PRs
As an increasing number of teams adopt the Stacking Workflow, Tower has embraced this new approach, becoming the first Git client that supports stacked branches.
With Tower, you can easily restack branches if there are changes to a parent branch, ensuring they are always in sync.
And if your team is using Graphite, Tower is the only Git client that supports it!


What are Stacked Pull Requests?
Developers work directly on the main branch and rely on feature flags to hide incomplete features. Instead of merging each individual feature branch directly into the main branch, a series of pull requests are created that build upon each other (hence the term "stacked").
Why use Stacked PRs?
- Reduce conflicts in code: By working closer to the main branch, the number and complexity of merge conflicts are minimized.
- Review, merge, and ship faster: Keeping changes small accelerates the process, in addition to reducing the occurrence of merge conflicts.
The Graphite Workflow in Tower Allows You To
Create stacked branches and keep their respective Pull Requests in sync.
Easily restack branches if there are changes to a parent branch in the stack.
Share your stacked branches with team members for easy collaboration.
Undo various operations with a simple keyboard shortcut (CMD+Z).
Works great with
Tower Workflows in Action
Stacked PRs for Faster Reviews!

Branching Features
- View a branch's associated Pull Request.
- Submit pending changes to a Pull Request.
- Merge a branch and its parents into the base branch.
- Fold a stacked branch into any of its parent branches.
- Rearrange or merge different sections of your stack with drag and drop.
- Easily identify which branches require restacking and update them accordingly.
- Group branches by stack in the sidebar to see dependencies between branches.
Working Copy
- Easily restack the current branch.
- Submit pending changes to Pull Requests.
- Create a new stacked branch based on the current changes in your Working Copy.
- Seamlessly switch between your stack branches without the need to stash changes (supported by git-worktree or auto-stash).
