git mergetool
git mergetool
:运行合并冲突解决工具,来解决合并冲突。使用git mergetool
运行的几种合并一个实用程序来解决合并冲突。它通常在之后运行git merge
。
语法
git mergetool [--tool=<tool>] [-y | --[no-]prompt] [<file>…]
如果给出一个或多个<file>参数,则将运行合并工具程序以解决每个文件上的差异(跳过那些没有冲突的文件)。指定一个目录将包含该路径中所有未解析的文件。如果省略<file>,git mergetool
则会在每个存在合并冲突的文件上运行合并工具程序。
选项
-t <tool>(--tool=<tool>)
- 使用<tool>指定的合并解析程序。有效值包括 emerge、gvimdiff、kdiff3、meld、vimdiff、tortoisemerge。运行
git mergetool --tool-help
查看有效的工具设置列表。 - 如果没有指定合并解析程序,
git mergetool
将使用配置变量merge.tool。如果配置变量merge.tool没有设置,git mergetool
会选择一个合适的默认值。默认:kdiff3。 - 您可以通过设置配置变量明确提供工具的完整路径mergetool.<tool>.path。例如,您可以通过设置配置 kdiff3 的绝对路径mergetool.kdiff3.path。否则,
git mergetool
假定该工具在PATH中可用。 git mergetool
可以通过指定要在配置变量中调用的命令行来定制运行其他程序,而不是运行其中一个已知的合并工具程序mergetool.<tool>.cmd。- 当
git mergetool
使用此工具调用此工具时(通过-t
或--tool
选项或merge.tool配置变量),将调用已配置的命令行并将其$BASE设置为包含合并公共基础的临时文件的名称(如果可用);$LOCAL设置为包含当前分支上文件内容的临时文件的名称;$REMOTE设置为包含要合并的文件内容的临时文件的名称,并将其$MERGED设置为合并工具应写入合并解析结果的文件的名称。 - 如果自定义合并工具使用其退出代码正确指示合并分辨率的成功,则可将该配置变量mergetool.<tool>.trustExitCode设置为true。否则,
git mergetool
将在用户工具退出后提示用户指示解析成功。
--tool-help
打印可能使用的合并工具列表
-y(--no-prompt)
在每次调用合并解析程序之前不要提示。如果通过--tool
选项或merge.tool配置变量显式指定合并解析程序,则这是默认值。
--prompt
在每次调用合并解决方案之前提示,以使用户有机会跳过该路径。
-O<orderfile>
按照<orderfile>中指定的顺序处理文件,每行有一个 shell glob 模式。这覆盖了 diff.orderFile 配置变量(请参阅 git config)。取消 diff.orderFile,使用-O/dev/null。
临时文件
git mergetool*.orig
在解析合并时创建备份文件。一旦文件合并并且git mergetool
会话完成,这些文件就可以安全移除。
将 mergetool.keepBackup 配置变量设置为 false 导致git mergetool
在文件成功合并时自动删除备份。