If you've worked on a repo for more than a few months, you know the feeling: you open your branch list and it's a graveyard. Half of them were merged weeks ago, a few are stale experiments you forgot about, and somewhere in there is the one branch you actually care about — buried.
Tower 13 for Windows ships two features aimed squarely at this problem: Branch Pinning and Automatic Branch Management. Both already existed on the Mac side (Pinning since Tower 8, Auto Branch Management since Tower 15), and they've now made it to Windows.
Branch Pinning
Right-click any branch and pin it. Pinned branches move into their own "Pinned" section at the top of the sidebar, so the ones you actually care about are always one click away.
A few details that make it less annoying in practice:
- You can pin/unpin several branches at once instead of one at a time.
- Pinned branches are exempt from auto-archiving — pinning something protects it.
- Pins live in your Git config, so they persist and don't quietly disappear.
Knowing what's safe to delete
Before Tower can help you clean up, it needs to tell you what's actually safe to remove. That's what the new "Fully Merged" and "Stale" badges are for.
A branch counts as "Fully Merged" when both are true: every commit is integrated into its parent, and the remote branch it was tracking has been deleted (i.e., the classic "PR merged, remote branch gone, local copy still hanging around" situation). Select a flagged branch and you get a hint view with a one-click delete.
Automatic Branch Management
This is the part that actually keeps the sidebar clean over time. There's now an "Archived Branches" view — branches land there either manually (drag-and-drop or context menu) or automatically, based on a stale-interval you configure yourself.
If you'd rather review before anything happens, clicking the notification counter in the footer opens an "Archive Branches" dialog so you can confirm in bulk. Branches can be unarchived at any time, and you can flag individual branches with "Skips Auto-Archiving" if you want to keep something around without formally pinning it.
The plain-git equivalent
If you're not using a GUI, this is roughly what Tower is automating for you:
# see which local branches are already merged into main
git branch --merged main
# prune local refs to branches deleted on the remote
git fetch --prune
# delete a merged branch
git branch -d branch-name
The difference is Tower does this continuously and shows you the state at a glance instead of you remembering to run it.
Full release notes (including the .NET 10 runtime bump and a handful of diff-view/submodule fixes) are on the Tower blog.
Curious how others handle this — do you clean up branches manually, have a cron/alias for it, or just let them pile up until it's unbearable?



Top comments (0)