| `mergetool.<tool>.path`:: | |
| Override the path for the given tool. This is useful in case | |
| your tool is not in the `$PATH`. | |
| `mergetool.<tool>.cmd`:: | |
| Specify the command to invoke the specified merge tool. The | |
| specified command is evaluated in shell with the following | |
| variables available: `BASE` is the name of a temporary file | |
| containing the common base of the files to be merged, if available; | |
| `LOCAL` is the name of a temporary file containing the contents of | |
| the file on the current branch; `REMOTE` is the name of a temporary | |
| file containing the contents of the file from the branch being | |
| merged; `MERGED` contains the name of the file to which the merge | |
| tool should write the results of a successful merge. | |
| `mergetool.<tool>.hideResolved`:: | |
| Allows the user to override the global `mergetool.hideResolved` value | |
| for a specific tool. See `mergetool.hideResolved` for the full | |
| description. | |
| `mergetool.<tool>.trustExitCode`:: | |
| For a custom merge command, specify whether the exit code of | |
| the merge command can be used to determine whether the merge was | |
| successful. If this is not set to true then the merge target file | |
| timestamp is checked, and the merge is assumed to have been successful | |
| if the file has been updated; otherwise, the user is prompted to | |
| indicate the success of the merge. | |
| `mergetool.meld.hasOutput`:: | |
| Older versions of `meld` do not support the `--output` option. | |
| Git will attempt to detect whether `meld` supports `--output` | |
| by inspecting the output of `meld --help`. Configuring | |
| `mergetool.meld.hasOutput` will make Git skip these checks and | |
| use the configured value instead. Setting `mergetool.meld.hasOutput` | |
| to `true` tells Git to unconditionally use the `--output` option, | |
| and `false` avoids using `--output`. | |
| `mergetool.meld.useAutoMerge`:: | |
| When the `--auto-merge` is given, meld will merge all non-conflicting | |
| parts automatically, highlight the conflicting parts, and wait for | |
| user decision. Setting `mergetool.meld.useAutoMerge` to `true` tells | |
| Git to unconditionally use the `--auto-merge` option with `meld`. | |
| Setting this value to `auto` makes git detect whether `--auto-merge` | |
| is supported and will only use `--auto-merge` when available. A | |
| value of `false` avoids using `--auto-merge` altogether, and is the | |
| default value. | |
| `mergetool.<variant>.layout`:: | |
| Configure the split window layout for vimdiff's _<variant>_, which is any of `vimdiff`, | |
| `nvimdiff`, `gvimdiff`. | |
| Upon launching `git mergetool` with `--tool=<variant>` (or without `--tool` | |
| if `merge.tool` is configured as _<variant>_), Git will consult | |
| `mergetool.<variant>.layout` to determine the tool's layout. If the | |
| variant-specific configuration is not available, `vimdiff` ' s is used as | |
| fallback. If that too is not available, a default layout with 4 windows | |
| will be used. | |
| ifdef::git-mergetool[] | |
| To configure the layout, see the 'BACKEND SPECIFIC HINTS' section. | |
| endif::[] | |
| ifndef::git-mergetool[] | |
| To configure the layout, see the 'BACKEND SPECIFIC HINTS' section in linkgit:git-mergetool[1]. | |
| endif::[] | |
| `mergetool.hideResolved`:: | |
| During a merge, Git will automatically resolve as many conflicts as | |
| possible and write the `$MERGED` file containing conflict markers around | |
| any conflicts that it cannot resolve; `$LOCAL` and `$REMOTE` normally | |
| are the versions of the file from before Git's conflict | |
| resolution. This flag causes `$LOCAL` and `$REMOTE` to be overwritten so | |
| that only the unresolved conflicts are presented to the merge tool. Can | |
| be configured per-tool via the `mergetool.<tool>.hideResolved` | |
| configuration variable. Defaults to `false`. | |
| `mergetool.keepBackup`:: | |
| After performing a merge, the original file with conflict markers | |
| can be saved as a file with a `.orig` extension. If this variable | |
| is set to `false` then this file is not preserved. Defaults to | |
| `true` (i.e. keep the backup files). | |
| `mergetool.keepTemporaries`:: | |
| When invoking a custom merge tool, Git uses a set of temporary | |
| files to pass to the tool. If the tool returns an error and this | |
| variable is set to `true`, then these temporary files will be | |
| preserved; otherwise, they will be removed after the tool has | |
| exited. Defaults to `false`. | |
| `mergetool.writeToTemp`:: | |
| Git writes temporary `BASE`, `LOCAL`, and `REMOTE` versions of | |
| conflicting files in the worktree by default. Git will attempt | |
| to use a temporary directory for these files when set `true`. | |
| Defaults to `false`. | |
| `mergetool.prompt`:: | |
| Prompt before each invocation of the merge resolution program. | |
| `mergetool.guiDefault`:: | |
| Set `true` to use the `merge.guitool` by default (equivalent to | |
| specifying the `--gui` argument), or `auto` to select `merge.guitool` | |
| or `merge.tool` depending on the presence of a `DISPLAY` environment | |
| variable value. The default is `false`, where the `--gui` argument | |
| must be provided explicitly for the `merge.guitool` to be used. |