$manlookup

git-difftool

(1)

Show changes using common diff tools

User commands9 optionsgit-man 1:2.47.3-0+deb13u1
git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]

Options

9
-d--dir-diff

Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.

-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.

--rotate-to

Start showing the diff for the given path, the paths before it will move to the end and output.

--skip-to

Start showing the diff for the given path, skipping all the paths before it.

-t--tool

Use the diff tool specified by <tool>. Valid values include emerge, kompare, meld, and vimdiff. Run git difftool --tool-help for the list of valid <tool> settings. 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 a

--tool-help

Print a list of diff tools that may be used with --tool.

-x--extcmd

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

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. This may be selected automatically using the configuration variable difftool.guiDefault. The --no-gui option can be used to override these settings. If diff.guitool is not set, we will fallback in the order of merge.guitool, diff.tool, merge.tool until a tool is found.

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 git-diff(1).

CONFIGURATION

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

Everything above this line in this section isn’t included from the git-config(1) documentation. The content that follows is the same as what’s found there:

diff.tool

Controls which diff tool is used by 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 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.

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 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 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.

GIT

Part of the git(1) suite

See also