Git 🌙
简体中文 ▾ Topics ▾ Latest version ▾ git-mergetool last updated in 2.45.0

名称

git-mergetool - 运行合并冲突解决工具以解决合并冲突

概述

git mergetool [--tool=<工具>] [-y |--[no-]prompt] [<文件>…​] 。

描述

使用 git mergetool 来运行几个合并工具中的一个来解决合并冲突。 它通常在 git merge 之后运行。

如果给出一个或多个 <文件> 参数,合并工具程序会运行以解决每个文件的差异(跳过那些没有冲突的文件)。 指定一个目录将包括该路径中所有未解决的文件。 如果没有指定 <文件> 名称,git mergetool 将对每个有合并冲突的文件运行合并工具程序。

选项

-t <工具>
--tool=<工具>

使用由<工具>指定的合并解决程序。 有效值包括 emerge、gvimdiff、kdiff3、meld、vimdiff 和 tortoisemerge。运行`git mergetool --tool-help`以获得有效的<工具>设置列表。

如果没有指定合并解决程序,git mergetool 将使用配置变量 merge.tool。 如果配置变量 merge.tool 没有设置,git mergetool 将自行挑选一个合适的程序。

你可以通过设置配置变量`mergetool.<工具>.path`来明确提供工具的完整路径。例如,你可以通过设置`mergetool.kdiff3.path`来配置kdiff3的绝对路径。否则,"git mergetool"会假定该工具在PATH中配置过。

通过在配置变量`mergetool.<工具>.cmd`中指定调用的命令行,'git mergetool’可以代替运行一个已知的合并工具程序,从而指定运行另一个程序。

git mergetool 与该工具一起被调用时(通过 -t--tool 选项或 merge.tool 配置变量),配置的命令行将被调用, $BASE 被设置为临时文件的名称,包含合并的共同基础(如果有的话); $LOCAL 被设置为包含当前分支上的文件内容的临时文件名称;$REMOTE 被设置为包含要合并文件内容的临时文件名称,以及合并工具应该将合并的结果写入 $MERGED 设置的文件中。

如果自定义合并工具能够正确地用其退出代码指示合并成功,那么配置变量 mergetool.<工具>.trustExitCode 可以被设置为 true。 否则,git mergetool 将在用户在自定义工具退出后表明解决成功。

--tool-help

打印出可以和 --tool 命令一起使用的merge工具列表。

-y
--no-prompt

在每次调用合并解决程序之前不会提示。 如果用 --tool 选项或 merge.tool 配置变量明确指定了合并解决程序,默认就是这种做法。

--prompt

在每次调用合并解决程序前提示,让用户有机会跳过该路径。

-g
--gui

当使用 -g--gui 选项调用 git-mergetool 时,默认的合并工具将从配置的 merge.guitool 变量中读取,而不是 merge.tool 变量。如果未设置 merge.guitool 变量,我们将退回到在 merge.tool 下配置的工具。这可以通过配置变量 mergetool.guiDefault 自动选择。

--no-gui

这将覆盖之前的 -g--gui 设置或 mergetool.guiDefault 配置,并从配置的 merge.tool 变量读取默认的合并工具。

-O<顺序控制文件>

按照 <顺序文件> 中指定的顺序处理文件,每行有一个 shell匹配模式。 这会覆盖 diff.orderFile 配置的变量(见 git-config[1])。 可以使用使用 -O/dev/null`取消 `diff.orderFile

配置

Warning

Missing zh_HANS-CN/includes/cmd-config-section-all.txt

See original version for this content.

Warning

Missing zh_HANS-CN/config/mergetool.txt

See original version for this content.

临时文件

git mergetool`在解决合并问题时创建*.orig`备份文件。 一旦文件被合并,并且其`git mergetool`会话完成,这些文件就可以安全地删除。

mergetool.keepBackup 配置变量设置为 false 会使 git mergetool 在文件成功合并后自动删除备份。

后端特定提示

vimdiff

Warning

Missing zh_HANS-CN/mergetools/vimdiff.txt

See original version for this content.

GIT

属于 git[1] 文档

scroll-to-top