`diff.tool`::
	Controls which diff tool is used by linkgit:git-difftool[1].
	This variable overrides the value configured in `merge.tool`.
	The list below shows the valid built-in values.
	Any other value is treated as a custom diff tool and requires
	that a corresponding `difftool.<tool>.cmd` variable is defined.

`diff.guitool`::
	Controls which diff tool is used by linkgit:git-difftool[1] when
	the `-g`/`--gui` flag is specified. This variable overrides the value
	configured in `merge.guitool`. The list below shows the valid
	built-in values. Any other value is treated as a custom diff tool
	and requires that a corresponding `difftool.<guitool>.cmd` variable
	is defined.

include::{build_dir}/mergetools-diff.adoc[]

`difftool.<tool>.cmd`::
	Specify the command to invoke the specified diff tool.
	The specified command is evaluated in shell with the following
	variables available: `LOCAL` is set to the name of the temporary
	file containing the contents of the diff pre-image and `REMOTE`
	is set to the name of the temporary file containing the contents
	of the diff post-image.
+
See the `--tool=<tool>` option in linkgit:git-difftool[1] for more details.

`difftool.<tool>.path`::
	Override the path for the given tool.  This is useful in case
	your tool is not in the PATH.

`difftool.trustExitCode`::
	Exit difftool if the invoked diff tool returns a non-zero exit status.
+
See the `--trust-exit-code` option in linkgit:git-difftool[1] for more details.

`difftool.prompt`::
	Prompt before each invocation of the diff tool.

`difftool.guiDefault`::
	Set `true` to use the `diff.guitool` by default (equivalent to specifying
	the `--gui` argument), or `auto` to select `diff.guitool` or `diff.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 `diff.guitool` to be used.
