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"
🌐
Git
git-scm.com › docs › git-mergetool
Git - git-mergetool Documentation
Use git mergetool to run one of several merge utilities to resolve merge conflicts.
Discussions

I ran `git merge` and got this screen: what editor is this - Stack Overflow
I tried to merge some changes from my branch to the main, but everytime that I make git merge Diego2, gitbash send this screen IDK what to do More on stackoverflow.com
🌐 stackoverflow.com
What mergetool are you using?
meld if you're using Linux. Supports 2- and 3-way merges. More on reddit.com
🌐 r/git
66
37
September 13, 2025
Stop git merge from opening text editor - Stack Overflow
Every time I run a git merge command it opens the text editor asking me to add an extra message. How can I stop git from opening the editor & simply merging my branches? Because when it opens ... More on stackoverflow.com
🌐 stackoverflow.com
Best UX for merge conflict resolving
I've always used KDiff3 . It looks pretty basic, but is very powerful particularly if you learn its keyboard shortcuts. It has three panes at the top: the common ancestor and then the two conflicting versions. Below you have the final version that you create by selecting changes from one of the three versions above. More on reddit.com
🌐 r/git
10
2
March 7, 2025
People also ask

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.

🌐
gitkraken.com
gitkraken.com › home › features overview › merge conflict resolution tool
Git Merge Conflict Resolution Tool | Visual 3-Way Merge 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:

  1. Attempt a merge, rebase, or cherry-pick in GitKraken Desktop.
  2. Conflicted files appear in the Commit Panel.
  3. Click a conflicted file to launch the Merge Tool.
  4. Compare “current” vs. “target” changes, select lines or edit directly.
  5. 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.

🌐
gitkraken.com
gitkraken.com › home › features overview › merge conflict resolution tool
Git Merge Conflict Resolution Tool | Visual 3-Way Merge Editor ...
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:

  1. Open Preferences > General in GitKraken Desktop.
  2. Select your external merge tool.
  3. Ensure its command-line integration is installed.
  4. 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.

🌐
gitkraken.com
gitkraken.com › home › features overview › merge conflict resolution tool
Git Merge Conflict Resolution Tool | Visual 3-Way Merge Editor ...
🌐
Git
git-scm.com › docs › git-merge
Git - git-merge Documentation
Thus, if you want to ensure your branch is not changed or updated by the merge command, use --no-ff with --no-commit. ... 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.
🌐
GitKraken
gitkraken.com › home › features overview › merge conflict resolution tool
Git Merge Conflict Resolution Tool | Visual 3-Way Merge Editor - GitKraken
October 7, 2025 - 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 ...
🌐
Medium
medium.com › @kaltepeter › tools-to-master-merge-conflicts-6d05b21a8ba8
Tools to Master Merge Conflicts | Medium
July 10, 2023 - VS Code merge editor · IntelliJ or other Jet Brains products · P4Merge (my personal favorite) GitKraken in particular is a very nice visual tool with all kinds of configurations and options. Learning a visual tool takes time, is specific to that tool, and often is a paid-for option.
🌐
GitHub
gist.github.com › karenyyng › f19ff75c60f18b4b8149
How to use `git mergetool` to resolve conflicts in Vim / NeoVim · GitHub
For using mergetool in git, we need to understand the following terminology to understand what is being merged: LOCAL - the head for the file(s) from the current branch on the machine that you are using. REMOTE - the head for files(s) from a remote location that you are trying to merge into your LOCAL branch. BASE - the common ancestor(s) of LOCAL and REMOTE. MERGED - the tag / HEAD object after the merge - this is saved as a new commit. Common mergetool from editors will display both LOCAL and REMOTE so you can decide which changes to keep.
Find elsewhere
🌐
Sublime Merge
sublimemerge.com
Sublime Merge | Git client from the makers of Sublime Text
View the exact Git commands you're using, and seamlessly transition between the command line and Sublime Merge. Looking for a commit? Use find-as-you-type search to find the exact commit you're looking for. Make it yours with an adaptable layout and powerful theming system. Command Palette · Commit Editing · Blame and File History · Submodule Management · Command Line Integration · Git Flow Integration · A cross-platform Git client, done the Sublime Text way · Download Download Download · The sophisticated text editor for code, markup and prose ·
Top answer
1 of 1
4

This is an vi editor window. This is happening because git cannot perform a fast forward and is prompting you for a message for a merge commit. Vi has a bit of a learning curve and can be confusing for new users.

First, I'd like to mention that you can change what this editor is via the core.editor gitconfig setting. I've included the docs for that below, which describe how to change the editor to emacs (another text editor):

core.editor
By default, Git uses whatever you’ve set as your default text editor via one of the shell environment variables VISUAL or EDITOR, or else falls back to the vi editor to create and edit your commit and tag messages. To change that default to something else, you can use the core.editor setting:

git config --global core.editor emacs

You can find a list of editor configs here. For other editors, you might have to do some tinkering or googling.

Secondly, I'd like to provide the basics on how to use vi and how commit messages are formatted. Regarding commit messages, the first line is the subject line. An optional body can be added to provide greater detail. It is below the subject line and is separated from it via a blank line.

Vi consists of several, but primarily three modes, NORMAL, INSERT and VISUAL. When first opening vi, you're in NORMAL mode, which is primarily used for navigation. You can begin typing once you enter INSERT mode, and you can select text to be cut or copied in VISUAL mode. Here are some key keybindings:

  • i enters INSERT mode at the current position
  • Esc lets you return to NORMAL mode from INSERT/VISUAL mode
  • h lets you move left in NORMAL mode
  • j lets you move down in NORMAL mode
  • k lets you move up in NORMAL mode
  • l lets you move right in NORMAL mode
  • u lets you undo changes while in NORMAL mode
  • C-r / Ctrl r lets you redo changes while in NORMAL mode
  • :wq while in NORMAL mode will write and quit the editor. Doing this allows you to continue with the merge, once you're satisfied with the message.
  • :cq while in NORMAL mode will quit vim and throw a compiler error. I find this useful if I want to inspect an interactive rebase without actually doing it. NOTE: if you do this while merging you'll end up in the MERGING git state. You'd have to use git merge --continue to continue the merge or git merge --abort to abort the merge.

EDIT: The format of a commit message is:

Subject line 

body text 

Here's a commit message example as well:

    Merge branch 'jc/revert-show-parent-info'

    * jc/revert-show-parent-info:
      revert: config documentation fixes

In this example, the line beginning with Merge branch is the subject line and the line beginning with the asterisk is the start of the body.

For the window you posted, the subject would be: Merge remote-tracking branch 'origin/Diego2' and it will not contain a body. This is perfectly fine unless you want to add more detail about what's introduced by the merge. If you're satisfied with the current message, press Esc to ensure you're in NORMAL mode followed by :wq to save and quit vi.

🌐
Git
git-scm.com › docs › merge-options
Git - merge-options Documentation
Thus, if you want to ensure your branch is not changed or updated by the merge command, use --no-ff with --no-commit. ... 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.
🌐
Microsoft Learn
learn.microsoft.com › en-us › visualstudio › version-control › git-resolve-conflicts
Resolve merge conflicts in Visual Studio | Microsoft Learn
The Git Changes window shows a list of files with conflicts under Unmerged Changes. To start resolving conflicts, double-click a file. Or if you have a file with conflicts opened in the editor, you can select Open Merge Editor.
🌐
Reddit
reddit.com › r/git › best ux for merge conflict resolving
r/git on Reddit: Best UX for merge conflict resolving
March 7, 2025 -

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.

🌐
DEV Community
dev.to › adiatiayu › how-to-resolve-merge-conflicts-using-the-merge-editor-feature-on-vs-code-pic
How to Resolve Merge Conflicts Using the Merge Editor Feature on VS Code - DEV Community
November 23, 2023 - Before using the Merge Editor, ... then click "Settings". Alternatively, press Ctrl + , for the shortcut. Type "git merge editor" in the search bar....
🌐
Codecademy
codecademy.com › docs › git › mergetool
Git | mergetool | Codecademy
December 27, 2023 - git commit -m "docs: update information about tutorials" ... Kaleidoscope: Developers often use this to resolve merge conflicts due to its use of different highlighted colors and powerful features ranging from a Convert to Merge command, text filters that remove unimportant data, and a debugger. Visual Studio Code: This Integrated Development Environment (IDE) has a built-in 3-way merge editor, which displays the incoming changes to the file and provides a button that enables the changes to be accepted into the file.
Top answer
1 of 13
182
Free and open source: Meld is freely available on Linux, Windows and OSX (through MacPorts, Fink or Brew). · It's also open source and distributed under the GNU General Public License (GPL). | Confusing UI: Can't tell which file is which if they have the same filename. | No option to compare individual rows horizontally: Unlike other options, like Beyond Compare, Meld has no option to compare individual rows horizontally. | Auto-merge is incomplete: Waste of time (for git), auto-merge leaves out one of the sides, no matter how you configure it. It is not possible to work just on the conflicting changes. | Can't compare differently-named files when comparing directories | Supports editing files directly: In addition to comparing two files it also allows you to edit them right in place. What's more, the diffs are updated automatically. | Fast on Linux: Relatively fast on Linux. | Three way comparisons: You can compare up to three different files for differences. Plus you can edit files from the comparison view and the diff will automatically update. | Simple GUI: SImple, clear overview. | Windows Installer is broken | Easy to use and visually appealing: Straightforward and you don't need to read tutorials to use it. Just click and select and you instantly see how the difference and merges are connected to each other. · 3 sub- windows, instead of 4, which reduces the mess during merge and let you see more of the surrounding files rather than just 5 lines. | On Windows it opens a bunch of cmd windows which sometimes fail to close: It looks like it's using batch scripts for some processes. | Bad merge logic: UI is fine but merge logic is bizarre at best. | No official OSX Support: Some attempts have been made to port, but nothing easy or fully working. | Comparing two or more different folders is supported: Meld allows users to compare two or three different folders for differences. But if a user wants to 'zoom in' and compare files contained in these folders, Meld gives you the ability to do so and launch file comparisons between files contained in different folders or in the same folder. | Slow on large files: While larger files are supported, they can take a long time to load. (20,000 lines+) · See also here. | Supports some simple version control actions: Meld supports the major version control systems (Git, Mercurial, Subversion and Bazaar). You can launch file comparisons between different versions to see what parts changed before commiting. · Simple version control actions are also supported and possible. For example: commit/update/add/remove/delete files. | Internationalization: Through the GNOME Translation project and the translators that have worked for it, Meld is available in multiple languages. You can check if your language is supported in the translation statistics page. · If you can't find your language or if your language translation is unfinished and you want to help, you can do so by joining the GNOME Translation Project. | I have been using Meld as a merge tool and Kdiff3 as a diff tool. I feel both are a little bit complicated to understand at the beginning. | Waste of time (for git), auto-merge leaves out one of the sides, no matter how you configure it. It is not possible to work just on the conflicting changes. | No way to take both changes on merge
2 of 13
159
Perforce - P4Merge features graphical three-way merging and side-by-side file comparison.Perforce - P4Merge features graphical three-way merging and side-by-side file comparison.Free: P4Merge is free of charge. | 3 way merge support : P4Merge presents merge information in 4 panes - BASE, LOCAL, REMOTE and MERGE_RESULT. · | Ability to ignore whitespaces: One can compare only non-whitespace characters, which is helpful when the source code was pushed through "code-cleaners". | Cross-platform with a good Mac port: P4Merge works on Windows, Linux and OS X. For Linux installation see here. | Proprietary: P4Merge is closed source. | Directory comparison is not supported: With P4Merge it's impossible to compare two different directories to find differences. | Detects minimal changes without having a common ancestor: After a merge sometimes you have conflicts. You can resolve them by using a merge tool. You can run `git mergetool --tool-help` to get more details about what tools are supported. · You will get an output like the following · `git mergetool --tool=` may be set to one of the following: · · p4merge · tortoisemerge · vimdiff · vimdiff2 · vimdiff3 · The following tools are valid, but not currently available: · · araxis · bc · bc3 · codecompare · deltawalker · diffmerge · diffuse · ecmerge · emerge · gvimdiff · gvimdiff2 · gvimdiff3 · kdiff3 · meld · opendiff · tkdiff · winmerge · xxdiff · Some of the tools listed above only work in a windowed environment. If run in a terminal-only session, they will fail. | No keyboard shortcut support for merging: The entire merge needs to be done via the mouse interaction, which is not suitable for the software developers. | Compare images: You can overlay 2 images to easily spot pixel-level changes. | Can't diff long lines against each other: See screenshot here. | Versions >= 2017.3 requires admin rights to install on windows: Version 2017.2 was the final version packaged with installshield, allowing installations to local user directories and HKCU registry without requiring windows admin rights. | Perforce - P4Merge features graphical three-way merging and side-by-side file comparison.
🌐
Linux Kernel
kernel.org › pub › software › scm › git › docs › git-merge.html
git-merge(1)
July 14, 2025 - Thus, if you want to ensure your branch is not changed or updated by the merge command, use --no-ff with --no-commit. ... 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.
🌐
Linux Kamarada
linuxkamarada.com › en › 2019 › 12 › 02 › git-pro-tip-merge-and-diff-made-easier-with-gui-tools-meld-and-atom
Git Pro Tip: merge and diff made easier with GUI tools Meld and Atom - Linux Kamarada
December 2, 2019 - Here is a tip for developers using Git: have you ever had a hard time merging branches? Did you know that there are GUI tools to resolve conflicts? They can make your job a lot easier. Today we are going to take a look at two of them: the Atom text editor and the Meld diff and merge tool.
🌐
Graphite
graphite.com › guides › using-merge-tools-in-git
Using merge tools in Git - Graphite
A Git merge tool is a utility that allows developers to visually address and resolve conflicts that arise during merges. When multiple developers make edits to the same lines of a file or when structural changes overlap, Git requires user ...