git difftool
名称
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
更多详细信息,请参阅上述选项