man pages section 1: User Commands

Exit Print View

Updated: July 2014

git-mergetool (1)


git-mergetool - Run merge conflict resolution tools to resolve merge conflicts


git mergetool [--tool=<tool>] [-y|--no-prompt|--prompt] [<file>...]


Git Manual                                       GIT-MERGETOOL(1)

     git-mergetool - Run merge conflict resolution tools to
     resolve merge conflicts

     git mergetool [--tool=<tool>] [-y|--no-prompt|--prompt] [<file>...]

     Use git mergetool to run one of several merge utilities to
     resolve merge conflicts. It is typically run after git

     If one or more <file> parameters are given, the merge tool
     program will be run to resolve differences on each file
     (skipping those without conflicts). Specifying a directory
     will include all unresolved files in that path. If no <file>
     names are specified, git mergetool will run the merge tool
     program on every file with merge conflicts.

     -t <tool>, --tool=<tool>
         Use the merge resolution program specified by <tool>.
         Valid merge tools are: araxis, bc3, diffuse, ecmerge,
         emerge, gvimdiff, kdiff3, meld, opendiff, p4merge,
         tkdiff, tortoisemerge, vimdiff and xxdiff.

         If a merge resolution program is not specified, git
         mergetool will use the configuration variable
         merge.tool. If the configuration variable merge.tool is
         not set, git mergetool will pick a suitable default.

         You can explicitly provide a full path to the tool by
         setting the configuration variable
         mergetool.<tool>.path. For example, you can configure
         the absolute path to kdiff3 by setting
         mergetool.kdiff3.path. Otherwise, git mergetool assumes
         the tool is available in PATH.

         Instead of running one of the known merge tool programs,
         git mergetool can be customized to run an alternative
         program by specifying the command line to invoke in a
         configuration variable mergetool.<tool>.cmd.

         When git mergetool is invoked with this tool (either
         through the -t or --tool option or the merge.tool
         configuration variable) the configured command line will
         be invoked with $BASE set to the name of a temporary
         file containing the common base for the merge, if
         available; $LOCAL set to the name of a temporary file
         containing the contents of the file on the current
         branch; $REMOTE set to the name of a temporary file

Git          Last change: 02/22/2012                    1

Git Manual                                       GIT-MERGETOOL(1)

         containing the contents of the file to be merged, and
         $MERGED set to the name of the file to which the merge
         tool should write the result of the merge resolution.

         If the custom merge tool correctly indicates the success
         of a merge resolution with its exit code, then the
         configuration variable mergetool.<tool>.trustExitCode
         can be set to true. Otherwise, git mergetool will prompt
         the user to indicate the success of the resolution after
         the custom tool has exited.

     -y, --no-prompt
         Don't prompt before each invocation of the merge
         resolution program.

         Prompt before each invocation of the merge resolution
         program. This is the default behaviour; the option is
         provided to override any configuration settings.

     git mergetool creates *.orig backup files while resolving
     merges. These are safe to remove once a file has been merged
     and its git mergetool session has completed.

     Setting the mergetool.keepBackup configuration variable to
     false causes git mergetool to automatically remove the
     backup as files are successfully merged.

     Part of the git(1) suite

     See attributes(5) for descriptions of the following

     |Availability   | developer/versioning/git |
     |Stability      | Uncommitted              |
     This software was built from source available at  The original
     community source was downloaded from  http://git-

     Further information about this software can be found on the

Git          Last change: 02/22/2012                    2

Git Manual                                       GIT-MERGETOOL(1)

     open source community website at

Git          Last change: 02/22/2012                    3