Guide
Perform an Interactive Rebase in Tower to Clean Up Commit History
Learn how to start, resolve conflicts, and finish an interactive rebase in Tower, with steps to verify the result and safely push the rewritten history.
Published by Tasadduq Burney
03 Feb 2026, 22:55 UTC
3 min39K views0

Desired outcome
Use Tower’s interactive rebase to reorder, edit, squash or drop commits on a local branch before sharing the changes.
Prerequisites
- Tower version 3.0 or later installed.
- A local Git repository with at least two commits you want to modify.
- The branch you will rebase is not protected on the remote (if you plan to push).
Procedure
- Open the repository in Tower and select the branch you want to rebase in the sidebar.
- In the commit graph, locate the earliest commit you want to include in the rebase (usually the commit just before the first change you want to edit). Right‑click that commit and choose
Rebase…. - In the rebase dialog, enable the Interactive toggle. Tower shows a list of commits from the selected point up to the current tip, each with a checkbox for pick, edit, squash or drop.
- Adjust the order or action for each commit by dragging entries or changing the checkbox. For example, to squash the last two commits into one, set the first to pick and the second to squash.
- Click Start. Tower begins applying the commits sequentially.
- If a conflict appears, the working tree view highlights the conflicting files. Resolve them using Tower’s built‑in three‑way merge editor, then click Continue to proceed to the next commit.
- When all commits have been processed, Tower updates the branch pointer and shows a summary.
- To share the rewritten history, click Push. Because the branch tip has changed, Tower offers a Force push option with a warning if the remote branch is protected. Confirm only if you are sure no collaborators depend on the old history.
Expected checks
- After starting the rebase, the commit list in the interactive editor shows checkboxes and allows drag‑and‑drop.
- After resolving a conflict, the Continue button becomes enabled and the progress bar advances.
- After the rebase finishes, the Log view displays the new commit order and the branch tip matches the latest local commit.
- When pushing, the push dialog includes a Force push toggle and the remote branch tip (visible in the remote refs) matches the local tip after a successful force push.
Recovery options
If you need to undo the rebase before pushing, click the Abort button in the rebase progress panel. Tower returns the branch to its pre‑rebase state, preserving any uncommitted changes only if they were stashed beforehand. After a push, recovery requires collaborators to fetch the forced‑updated branch or you to restore from a backup.
Limitations
- Interactive rebase rewrites history; force‑pushing a shared branch can disrupt collaborators.
- Tower’s interactive rebase works with Git 2.0+; older Git versions may lack some optimizations.
- The feature is available only in the graphical client; equivalent command‑line steps are
git rebase -i <base>.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.