Using Towergit’s Three‑Way Merge Conflict Resolver to Keep Rebases Smooth
Learn how Towergit’s built‑in conflict resolver shows BASE, LOCAL, and REMOTE panes, lets you edit the RESULT inline, and stages resolved files so you can finish a merge or rebase without leaving the GUI.
13 Aug 2026, 17:38 UTC

When a merge stops you in your tracks
You start a rebase or merge, Git reports a conflict, and Towergit opens its built‑in resolver automatically. Instead of dropping to the command line, the GUI shows four panes: BASE (the common ancestor), LOCAL (your current branch), REMOTE (the incoming changes), and a RESULT pane where you craft the final file.
How the resolver works
Each conflicting hunk is displayed with syntax‑highlighted diff. Clicking a hunk’s “Choose LOCAL” or “Choose REMOTE” button copies that side’s version into the RESULT pane for that hunk. You can also edit the RESULT pane directly, type your own resolution, or use the toolbar’s “Resolve All Conflicts” to accept one side for every hunk. Undo/redo lets you step back, and whitespace differences are highlighted in a lighter shade.
Worked example: resolving a line conflict during a rebase
- In a terminal, ensure you have write access to the repository and run
to create a short‑lived branch.git checkout -b feature-user - Edit
src/config.jsand change the lineconst API_URL = 'https://api.example.com/v1';toconst API_URL = 'https://api.staging.example.com/v1';. Commit the change. - Switch back to
main, edit the same file and change the line toconst API_URL = 'https://api.prod.example.com/v1';. Commit. - Return to the feature branch and start the rebase:
. Towergit detects the conflict and opens the resolver.git rebase main - In the resolver, locate the conflicting hunk. The BASE pane shows the original line, LOCAL shows your feature change, REMOTE shows the main change.
- Click the “Choose LOCAL” button for that hunk. The RESULT pane updates to contain your feature’s URL.
- If you prefer a custom value, click inside the RESULT pane and type
const API_URL = 'https://api.custom.example.com/v1';. - Press
Ctrl+Zor use the undo toolbar button to revert an edit, orCtrl+Yto redo. - When the RESULT pane looks correct, click the “Commit” button in the top‑right of the Towergit window. The file is automatically staged, and the rebase continues.
- To verify that the file is staged, open a terminal and run
. You should see the line you chose in the RESULT pane.git diff --cached src/config.js
Trade‑offs and limitations
- The resolver does not render binary files; if a conflict occurs in an image or compiled asset, you must resolve it externally or via the command line.
- Large source files with many conflicting hunks can make each pane sluggish because the full file is loaded for diff rendering. In such cases, launching an external merge tool (configured in Towergit → Preferences → Diff & Merge) may be more responsive.
- Choosing “Resolve All Conflicts” with a single side discards the other side’s changes without a preview; review the RESULT pane before committing to avoid unintentionally dropping work.
Closing: keep the workflow GUI‑centric
Towergit’s three‑way resolver lets you see the ancestor, both sides, and the merged result in one view, edit the output inline, and have the file staged automatically. By following the steps above you can resolve typical text conflicts without leaving the application, while knowing where to fall back to an external tool or the command line for binary or massive files.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.