Resolving Merge Conflicts Using GitKraken's Visual Merge Tool
Learn how to use GitKraken's visual merge tool to resolve conflicts without manual marker deletion, including verification steps and common pitfalls with binary files.
19 Apr 2026, 16:19 UTC

The Problem: Manual Conflict Marker Fatigue
When Git cannot automatically reconcile differences between two branches, it inserts conflict markers (<<<<<<<, =======, >>>>>>>) directly into your source code. Manually deleting these markers and choosing the correct lines in a standard text editor is error-prone and slows down the development cycle, especially in large files with multiple conflicting hunks.
The takeaway: GitKraken replaces manual marker deletion with a side-by-side visual interface that allows you to toggle specific lines or entire blocks (hunks) from the source or target branch, automatically updating the Git index as you work.
How the Visual Merge Tool Works
GitKraken's merge tool parses the standard Git index markers to identify conflicting regions. Instead of editing the text file directly, you interact with a UI that represents three states: Our (the current branch you are merging into), Their (the branch being merged in), and the Result (the final version of the file).
Practical Workflow Example
Assume you are on the main branch and merging a feature branch called auth-fix. Both branches modified line 12 of config.js.
- Trigger the Conflict: Perform the merge via the GitKraken graph. When the conflict occurs, GitKraken will flag the file with a red conflict icon in the right-hand panel.
- Open the Merge Tool: Click the conflicted file to launch the visual merge editor.
- Resolve the Hunk:
- If
mainhas the correct configuration, click the checkbox for the Our side of the conflict. - If
auth-fixhas the correct logic, click the Their checkbox. - If both changes are needed, you can manually edit the Result pane at the bottom to combine the logic.
- If
- Finalize: Once all conflict markers are resolved, the tool automatically stages the file to the Git index.
Configuration and Command Verification
While GitKraken handles the UI, the underlying state is managed by the Git binary. To verify that the visual tool has correctly staged your resolution, run the following command in your terminal (requires Git installed and access to the project directory):
git status
Expected Result: The file should appear under "Changes to be committed" rather than "Unmerged paths." If the file is still listed as unmerged, the resolution was not finalized in the UI.
Limitations and Common Pitfalls
Binary File Conflicts
The visual merge tool is designed for text-based files. If a conflict occurs in a binary file (such as a .png or .dll), GitKraken cannot show a side-by-side diff. In these cases, you must choose one version entirely: either Keep Our or Keep Their. Attempting to "merge" binary data will result in a corrupted file.
The "Merge All" Risk
GitKraken provides a "Merge All" shortcut to quickly accept all changes from one side. While efficient, this is a common source of logical regressions. For example, if you "Merge All" from a feature branch, you might overwrite a critical security patch applied to the main branch that happened to be in a non-conflicting part of the file.
Structural Divergence
If a file has been completely rewritten or heavily restructured (e.g., moving a function from the top of the file to the bottom), the visual tool may struggle to align the hunks. In these scenarios, the tool may mark the entire file as a conflict. The safest path is to use the Result pane to manually reconstruct the file or use a three-way merge tool if the internal editor cannot align the changes.
Verification Checklist
To ensure your merge is clean before committing:
- Check that no
<<<<<<<markers remain in the file by searching the codebase. - Verify the
git statusoutput shows the file as staged. - Run your project's test suite to ensure the merged logic is functionally correct and the code compiles.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.