git-mergetool

原文: https://git-scm.com/docs/git-mergetool

名称

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

概要

  1. git mergetool [--tool=<tool>] [-y | --[no-]prompt] [<file>…​]

描述

使用git mergetool运行多个合并实用程序之一来解决合并冲突。它通常在 git merge 之后运行。

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

OPTIONS

  1. -t <tool>
  1. --tool=<tool>

使用< tool>指定的合并解析程序。有效值包括emerge,gvimdiff,kdiff3,meld,vimdiff和tortoisemerge。运行git mergetool --tool-help以获取有效< tool>的列表设置。

如果未指定合并解析程序, git mergetool 将使用配置变量merge.tool。如果未设置配置变量merge.toolgit mergetool 将选择合适的默认值。

您可以通过设置配置变量mergetool.&lt;tool&gt;.path显式提供工具的完整路径。例如,您可以通过设置mergetool.kdiff3.path配置kdiff3的绝对路径。否则, git mergetool 假定该工具在PATH中可用。

可以通过指定要在配置变量mergetool.&lt;tool&gt;.cmd中调用的命令行来自定义 git mergetool 来运行备用程序,而不是运行其中一个已知的合并工具程序。

当使用此工具调用 git mergetool 时(通过-t--tool选项或merge.tool配置变量),将在$BASE设置为名称的情况下调用配置的命令行包含合并公共基础的临时文件(如果有); $LOCAL设置为包含当前分支上文件内容的临时文件的名称; $REMOTE设置为包含要合并的文件内容的临时文件的名称,$MERGED设置为合并工具应写入合并解析结果的文件的名称。

如果自定义合并工具正确指示合并解析及其退出代码成功,则配置变量mergetool.&lt;tool&gt;.trustExitCode可以设置为true。否则, git mergetool 将提示用户在自定义工具退出后指示分辨率是否成功。

  1. --tool-help

打印可能与--tool一起使用的合并工具列表。

  1. -y
  1. --no-prompt

在每次调用合并解析程序之前不要提示。如果使用--tool选项或merge.tool配置变量显式指定了合并解析程序,则这是默认值。

  1. --prompt

在每次调用合并解析程序之前提示,以便为用户提供跳过路径的机会。

  1. -g
  1. --gui

当使用-g--gui选项调用 git-mergetool 时,将从配置的merge.guitool变量而不是merge.tool中读取默认合并工具。

  1. --no-gui

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

  1. -O<orderfile>

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

临时文件

git mergetool在解析合并时创建*.orig备份文件。一旦文件合并并且其git mergetool会话已完成,可以安全地删除它们。

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

GIT

部分 git [1] 套件