Meld is a free, open-source, and cross-platform (UNIX/Linux, OSX, Windows) diff/merge tool.
Here's how to install it on:
- Ubuntu
- Mac
- Windows: "The recommended version of Meld for Windows is the most recent release, available as an MSI from https://meldmerge.org"
Meld is a free, open-source, and cross-platform (UNIX/Linux, OSX, Windows) diff/merge tool.
Here's how to install it on:
- Ubuntu
- Mac
- Windows: "The recommended version of Meld for Windows is the most recent release, available as an MSI from https://meldmerge.org"
You can configure your own merge tool to be used with "git mergetool".
Example:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
git config --global mergetool.p4merge.trustExitCode false
And while you are at it, you can also set it up as your difftool for "git difftool":
git config --global diff.tool p4merge
git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'
Note that in Unix/Linux you don't want the $BASE to get parsed as a variable by your shell - it should actually appear in your ~/.gitconfig file for this to work.
I ran `git merge` and got this screen: what editor is this - Stack Overflow
What mergetool are you using?
Stop git merge from opening text editor - Stack Overflow
Best UX for merge conflict resolving
Does GitLens resolve merge conflicts differently than GitKraken Desktop?
Yes. GitKraken Desktop’s Merge Tool opens one conflicted file at a time in a side-by-side editor, with optional AI suggestions per file.
GitLens works inside VS Code, Cursor, Kiro, Windsurf and Trae and resolves all conflicted files in your repository at once. For each file, AI explains the proposed resolution so you can review and adjust it before it applies. Use GitKraken Desktop when you want a visual, file-by-file walkthrough. Use GitLens when you want to clear every conflict in one pass without leaving your editor.
What is the GitKraken Merge Tool?
The GitKraken Desktop Merge Tool is a built-in Git conflict editor designed to make version control safer and more visual. Merge conflicts normally occur when two branches in Git modify the same line of code, and Git cannot automatically combine them. Instead of showing raw conflict markers, GitKraken Desktop opens a side-by-side editor with a live merged output, so you can resolve conflicts cleanly.
Steps:
- Attempt a merge, rebase, or cherry-pick in GitKraken Desktop.
- Conflicted files appear in the Commit Panel.
- Click a conflicted file to launch the Merge Tool.
- Compare “current” vs. “target” changes, select lines or edit directly.
- Save, mark resolved, and commit.
Example: If two teammates edit settings.json in different branches on GitHub, GitKraken Desktop will flag the conflict. Opening the Merge Tool lets you combine both edits or choose one version before committing.
Can I use an external merge tool?
Yes. GitKraken Desktop integrates with popular external merge tools like Beyond Compare, Araxis, P4Merge, and Kaleidoscope. This allows you to resolve merge conflicts using your preferred setup while still managing your Git workflow in GitKraken.
Steps:
- Open Preferences > General in GitKraken Desktop.
- Select your external merge tool.
- Ensure its command-line integration is installed.
- When conflicts occur, open them directly in the external tool.
Example: You configure Araxis as your external merge tool. When a large XML conflict appears in your Bitbucket repo, you launch Araxis directly from GitKraken Desktop to resolve it.
Recently started going deep in git docs, found that we can set merge tools. And there are a lot of options available. I want to know what people are using before I jump and check each.
Use the --no-edit option, you can read about it in the documentation.
Note that using the default message is discuraged, since it provides no meaningful information about the changes introduced with this merge.
On a sidenote: To continue merging you probably have to close the editor.
If you have a git version prior to 1.7.8 there is still a way to achieve what you want by using the env command.
env GIT_EDITOR=: git merge <ref-you-want-to-merge>
For easier usage you could create an alias.
git config --global alias.merge-no-edit '!env GIT_EDITOR=: git merge'
Which then can be used using git merge-no-edit <ref-you-want-to-merge>.
You can use
git merge --no-edit
This is the man page :
--edit, -e, --no-edit Invoke an editor before committing successful mechanical merge to further edit the auto-generated merge message, so that the user can explain and justify the merge. The --no-edit option can be used to accept the auto-generated message (this is generally discouraged). The --edit (or -e) option is still useful if you are giving a draft message with the -m option from the command line and want to edit it in the editor.
Older scripts may depend on the historical behaviour of not allowing the user to edit the merge log message. They will see an editor opened when they run git merge. To make it easier to adjust such scripts to the updated behaviour, the environment variable GIT_MERGE_AUTOEDIT can be set to no at the beginning of them.
During the last days I used several tools and options to get the best experience when resolving merge conflicts.
My current favorite is:
[mergetool "meld"] useAutoMerge = true
Be sure to set this option first:
git config --global mergetool.meld.useAutoMerge true
git mergetool --tool=meld
Now a nice UI opens, and you will see three columns:
-
On the left side, you see your original code (before starting the merge).
-
In the middle, you see the result of the automatic merges done by Git.
-
On the right side, you see "theirs" (new main branch).
The green and blue parts are automatically resolved. You do not modify these in most cases.
You will see conflicts marked with a red background. In the middle column of a conflict line, you see (??).
You can take the left (your side), the right side (theirs), or modify the code manually.
Finally, go to the middle column and press Ctrl+S to save your changes. Then close the UI. The UI will reopen if there is a second file with a conflict.
I have tried several other tools, but meld (with useAutoMerge) is still my favorite.
Please prove me wrong, and tell me a better way to handle merge conflicts.