## 名称

git-difftool - 使用常见差异工具显示更改

## 概要

    git difftool [<options>] [<commit> [<commit>]] [--] [<path>…]

## 描述

`git difftool`是一个 Git 命令，允许您使用常见差异工具在修订之间比较和编辑文件。`git difftool`是前端`git diff`并接受相同的选项和参数。参见 git-diff [1]。

## 选项

-d --dir-diff

将修改后的文件复制到临时位置，然后对它们执行一个目录 diff。该模式在启动 diff 工具之前从不提示。

-y --no-prompt

启动 diff 工具前不要提示。

--prompt

在每次调用 diff 工具前提示。这是默认行为; 该选项用于覆盖任何配置设置。

-t <tool> --tool=<tool>

使用<tool>指定的 diff 工具。有效值包括 emerge，kompare，meld 和 vimdiff。运行`git difftool --tool-help`有效的<工具>设置列表。

如果没有指定 diff 工具，`git difftool`将使用配置变量`diff.tool`。如果配置变量`diff.tool`没有设置，`git difftool`会选择一个合适的默认值。

您可以通过设置配置变量明确提供工具的完整路径`difftool.<tool>.path`。例如，您可以通过设置配置 kdiff3 的绝对路径`difftool.kdiff3.path`。否则，`git difftool`假定该工具在 PATH 中可用。

`git difftool`通过指定要在配置变量中调用的命令行，可以自定义运行其中一个已知的差异工具，以运行替代程序`difftool.<tool>.cmd`。

当`git difftool`用此工具调用（通过`-t`或`--tool`选项或`diff.tool`配置变量）所配置的命令行将具有可用以下变量来调用：`$LOCAL`被设置为包含DIFF前图像的内容的临时文件的名字和`$REMOTE`是设置为包含diff post-image内容的临时文件的名称。`$MERGED`是正在比较的文件的名称。`$BASE`是为了与自定义合并工具命令兼容而提供的，并且具有与`$MERGED`相同的值。

--tool-help

打印可能使用的差异工具列表`--tool`。

--no-symlinks

`git difftool`默认行为是在`--dir-diff`模式下运行时为工作树创建符号链接，比较的右侧产生与工作树中文件相同的内容。

指定`--no-symlinks`指示`git difftool`来创建副本。`--no-symlinks`是Windows上的默认值。

-x <command> --extcmd=<command>

指定用于查看差异的自定义命令。`git-difftool`忽略配置的默认值并`$command $LOCAL $REMOTE`在指定此选项时运行。此外，`$BASE`在环境中设置。

-g --no-gui

当`git-difftool`使用`-g`或`--gui`选项调用默认差异工具时，将从配置的`diff.guitool`变量中读取，而不是从中读取`diff.tool`。该`--no-gui`选项可用于覆盖此设置。

--no-trust-exit-code

`git-difftool`在每个文件上分别调用 diff 工具。默认情况下，diff 工具报告的错误将被忽略。使用`--trust-exit-code`做出`git-difftool`退出时调用的 diff 工具返回一个非零退出代码。

`git-difftool`将在`--trust-exit-code`使用时转发所调用的工具的退出代码。

有关支持选项的完整列表，请参阅 git-diff [1]。

## 配置变量

如果尚未定义difftool等价物，则`git difftool`回退到`git mergetool`配置变量。

diff.tool

要使用的默认差异工具。

diff.guitool

`--gui`指定时使用的默认差异工具。

difftool.<tool>.path

覆盖给定工具的路径。如果您的工具不在 PATH 中，这非常有用。

difftool.<tool>.cmd

指定用于调用指定的 diff 工具的命令。

有关`--tool=<tool>`更多详细信息，请参阅上述选项

difftool.prompt

在每次调用 diff 工具前提示。

difftool.trustExitCode

如果被调用的 diff 工具返回非零退出状态，则退出 difftool。

有关`--trust-exit-code`更多详细信息，请参阅上述选项