1git-mergetool(1) 2================ 3 4NAME 5---- 6git-mergetool - Run merge conflict resolution tools to resolve merge conflicts 7 8SYNOPSIS 9-------- 10'git mergetool' [--tool=<tool>] [-y|--no-prompt|--prompt] [<file>]... 11 12DESCRIPTION 13----------- 14 15Use `git mergetool` to run one of several merge utilities to resolve 16merge conflicts. It is typically run after 'git merge'. 17 18If one or more <file> parameters are given, the merge tool program will 19be run to resolve differences on each file. If no <file> names are 20specified, 'git mergetool' will run the merge tool program on every file 21with merge conflicts. 22 23OPTIONS 24------- 25-t <tool>:: 26--tool=<tool>:: 27 Use the merge resolution program specified by <tool>. 28 Valid merge tools are: 29 kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 30 diffuse, tortoisemerge, opendiff, p4merge and araxis. 31+ 32If a merge resolution program is not specified, 'git mergetool' 33will use the configuration variable `merge.tool`. If the 34configuration variable `merge.tool` is not set, 'git mergetool' 35will pick a suitable default. 36+ 37You can explicitly provide a full path to the tool by setting the 38configuration variable `mergetool.<tool>.path`. For example, you 39can configure the absolute path to kdiff3 by setting 40`mergetool.kdiff3.path`. Otherwise, 'git mergetool' assumes the 41tool is available in PATH. 42+ 43Instead of running one of the known merge tool programs, 44'git mergetool' can be customized to run an alternative program 45by specifying the command line to invoke in a configuration 46variable `mergetool.<tool>.cmd`. 47+ 48When 'git mergetool' is invoked with this tool (either through the 49`-t` or `--tool` option or the `merge.tool` configuration 50variable) the configured command line will be invoked with `$BASE` 51set to the name of a temporary file containing the common base for 52the merge, if available; `$LOCAL` set to the name of a temporary 53file containing the contents of the file on the current branch; 54`$REMOTE` set to the name of a temporary file containing the 55contents of the file to be merged, and `$MERGED` set to the name 56of the file to which the merge tool should write the result of the 57merge resolution. 58+ 59If the custom merge tool correctly indicates the success of a 60merge resolution with its exit code, then the configuration 61variable `mergetool.<tool>.trustExitCode` can be set to `true`. 62Otherwise, 'git mergetool' will prompt the user to indicate the 63success of the resolution after the custom tool has exited. 64 65-y:: 66--no-prompt:: 67 Don't prompt before each invocation of the merge resolution 68 program. 69 70--prompt:: 71 Prompt before each invocation of the merge resolution program. 72 This is the default behaviour; the option is provided to 73 override any configuration settings. 74 75TEMPORARY FILES 76--------------- 77`git mergetool` creates `*.orig` backup files while resolving merges. 78These are safe to remove once a file has been merged and its 79`git mergetool` session has completed. 80 81Setting the `mergetool.keepBackup` configuration variable to `false` 82causes `git mergetool` to automatically remove the backup as files 83are successfully merged. 84 85Author 86------ 87Written by Theodore Y Ts'o <tytso@mit.edu> 88 89Documentation 90-------------- 91Documentation by Theodore Y Ts'o. 92 93GIT 94--- 95Part of the linkgit:git[1] suite