git-difftool(1)
===============

NAME
----
git-difftool - Show changes using common diff tools

SYNOPSIS
--------
[verse]
'git difftool' [<options>] [<commit> [<commit>]] [--] [<path>...]

DESCRIPTION
-----------
'git difftool' is a git command that allows you to compare and edit files
between revisions using common diff tools.  'git difftool' is a frontend
to 'git diff' and accepts the same options and arguments. See
linkgit:git-diff[1].

OPTIONS
-------
-y::
--no-prompt::
	Do not prompt before launching a diff tool.

--prompt::
	Prompt before each invocation of the diff tool.
	This is the default behaviour; the option is provided to
	override any configuration settings.

-t <tool>::
--tool=<tool>::
	Use the diff tool specified by <tool>.
	Valid diff tools are:
	araxis, bc3, deltawalker, diffuse, emerge, ecmerge, gvimdiff,
	kdiff3,	kompare, meld, opendiff, p4merge, tkdiff, vimdiff and
	xxdiff.
+
If a diff tool is not specified, 'git difftool'
will use the configuration variable `diff.tool`.  If the
configuration variable `diff.tool` is not set, 'git difftool'
will pick a suitable default.
+
You can explicitly provide a full path to the tool by setting the
configuration variable `difftool.<tool>.path`. For example, you
can configure the absolute path to kdiff3 by setting
`difftool.kdiff3.path`. Otherwise, 'git difftool' assumes the
tool is available in PATH.
+
Instead of running one of the known diff tools,
'git difftool' can be customized to run an alternative program
by specifying the command line to invoke in a configuration
variable `difftool.<tool>.cmd`.
+
When 'git difftool' is invoked with this tool (either through the
`-t` or `--tool` option or the `diff.tool` configuration variable)
the configured command line will be invoked 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.  `$MERGED` is the name of the file which is
being compared. `$BASE` is provided for compatibility
with custom merge tool commands and has the same value as `$MERGED`.

-x <command>::
--extcmd=<command>::
	Specify a custom command for viewing diffs.
	'git-difftool' ignores the configured defaults and runs
	`$command $LOCAL $REMOTE` when this option is specified.
	Additionally, `$BASE` is set in the environment.

-g::
--gui::
	When 'git-difftool' is invoked with the `-g` or `--gui` option
	the default diff tool will be read from the configured
	`diff.guitool` variable instead of `diff.tool`.

See linkgit:git-diff[1] for the full list of supported options.

CONFIG VARIABLES
----------------
'git difftool' falls back to 'git mergetool' config variables when the
difftool equivalents have not been defined.

diff.tool::
	The default diff tool to use.

diff.guitool::
	The default diff tool to use when `--gui` is specified.

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

difftool.<tool>.cmd::
	Specify the command to invoke the specified diff tool.
+
See the `--tool=<tool>` option above for more details.

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

SEE ALSO
--------
linkgit:git-diff[1]::
	 Show changes between commits, commit and working tree, etc

linkgit:git-mergetool[1]::
	Run merge conflict resolution tools to resolve merge conflicts

linkgit:git-config[1]::
	 Get and set repository or global options

GIT
---
Part of the linkgit:git[1] suite
