git-difftool
命令名称 - 使用常用 diff 工具显示更改
概要
git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]描述
git difftool 是一个 Git 命令,允许您使用常用 diff 工具在修订之间比较和编辑文件。git difftool 是 git diff 的前端,接受相同的选项和参数。参阅 git-diff(1)。
选项
-d/--dir-diff- 将修改的文件复制到临时位置并对它们执行目录 diff。此模式在启动 diff 工具前从不提示。-y/--no-prompt- 在启动 diff 工具前不提示。--prompt- 在每次调用 diff 工具前提示。这是默认行为;提供此选项是为了覆盖任何配置设置。--rotate-to=<file>- 开始显示 <file> 的 diff,它之前的路径将移动到末尾并输出。--skip-to=<file>- 开始显示 <file> 的 diff,跳过它之前的所有路径。-t <tool>/--tool=<tool>- 使用 <tool> 指定的 diff 工具。有效值包括 emerge、kompare、meld 和 vimdiff。运行git difftool --tool-help获取有效 <tool> 设置的列表。如果未指定 diff 工具,
git difftool将使用配置变量diff.tool。如果配置变量diff.tool未设置,git difftool将选择一个合适的默认值。您可以通过设置配置变量
difftool.<tool>.path显式提供工具的完整路径。例如,您可以通过设置difftool.kdiff3.path来配置 kdiff3 的绝对路径。否则,git difftool假定工具在 PATH 中可用。git difftool可以通过在配置变量difftool.<tool>.cmd中指定要调用的命令行来自定义运行替代程序,而不是运行已知的 diff 工具之一。当使用此工具调用
git difftool(通过-t或--tool选项或diff.tool配置变量)时,配置的命令行将被调用,并提供以下变量:$LOCAL设置为包含 diff 预映像内容的临时文件名,$REMOTE设置为包含 diff 后映像内容的临时文件名。$MERGED是正在比较的文件名。$BASE提供用于与自定义合并工具命令兼容,与$MERGED具有相同的值。--tool-help- 打印可与--tool一起使用的 diff 工具列表。--symlinks/--no-symlinks-git difftool的默认行为是在--dir-diff模式下运行且比较右侧与工作树中的文件内容相同时创建工作树的符号链接。指定
--no-symlinks指示git difftool创建副本。--no-symlinks在 Windows 上是默认值。-x <command>/--extcmd=<command>- 指定用于查看 diff 的自定义命令。git-difftool忽略已配置的默认值,并在指定此选项时运行<command> $LOCAL $REMOTE。此外,$BASE在环境中设置。-g/--gui/--no-gui- 当使用-g或--gui选项调用git-difftool时,默认 diff 工具将从配置的diff.guitool变量读取,而不是从diff.tool。可以使用配置变量difftool.guiDefault自动选择。--no-gui选项可用于覆盖这些设置。如果未设置diff.guitool,我们将按merge.guitool、diff.tool、merge.tool的顺序回退,直到找到工具。--trust-exit-code/--no-trust-exit-code- 默认情况下,diff 工具报告的错误会被忽略。使用--trust-exit-code使git-difftool在调用的 diff 工具返回非零退出代码时退出。当使用
--trust-exit-code时,git-difftool将转发调用工具的退出代码。
有关支持的选项的完整列表,请参阅 git-diff(1)。
配置
当 difftool 等效项未定义时,git difftool 回退到 git mergetool 配置变量。
本节中此行以上的所有内容未包含在 git-config(1) 文档中。以下内容与那里找到的相同:
diff.tool- 控制 git-difftool(1) 使用哪个 diff 工具。此变量覆盖merge.tool中配置的值。下面的列表显示了有效的内置值。任何其他值被视为自定义 diff 工具,需要定义相应的difftool.<tool>.cmd变量。diff.guitool- 控制在指定-g/--gui标志时 git-difftool(1) 使用哪个 diff 工具。此变量覆盖merge.guitool中配置的值。下面的列表显示了有效的内置值。任何其他值被视为自定义 diff 工具,需要定义相应的difftool.<guitool>.cmd变量。difftool.<tool>.cmd- 指定调用指定 diff 工具的命令。指定的命令在 shell 中评估,并提供以下变量:LOCAL设置为包含 diff 预映像内容的临时文件名,REMOTE设置为包含 diff 后映像内容的临时文件名。 有关更多详细信息,请参阅 git-difftool(1) 中的--tool=<tool>选项。difftool.<tool>.path- 覆盖给定工具的路径。当您的工具不在 PATH 中时,这很有用。difftool.trustExitCode- 如果调用的 diff 工具返回非零退出状态,则退出 difftool。 有关更多详细信息,请参阅 git-difftool(1) 中的--trust-exit-code选项。difftool.prompt- 在每次调用 diff 工具前提示。difftool.guiDefault- 设置true以默认使用diff.guitool(等同于指定--gui参数),或设置auto根据是否存在DISPLAY环境变量值选择diff.guitool或diff.tool。默认为false,此时必须显式提供--gui参数才能使用diff.guitool。
另请参阅
git-diff(1) - 显示提交之间、提交与工作树等之间的更改
git-mergetool(1) - 运行合并冲突解决工具以解决合并冲突
git-config(1) - 获取和设置仓库或全局选项
Git
git(1) 套件的一部分
