## 名称

git-merge-index - 为需要合并的文件运行合并

## 概要

    git merge-index [-o] [-q] <merge-program> (-a | [--] <file>*)

## 描述

这将查找索引中的<file>（s），并且如果有任何合并条目，则将这些文件的SHA-1散列作为参数1，2，3（空参数，如果没有文件）和<file>作为参数4.三个文件的文件模式作为参数5,6和7传递。

## 选项

--

不要将更多的参数解释为选项。

-a

针对需要合并的索引中的所有文件运行合并。

-o

不要停止在第一次失败的合并，而是在一次完成所有的合并 - 即使先前的合并返回错误时继续合并，并且仅在所有合并之后返回错误代码。

-q

不要抱怨失败的合并程序（合并程序失败通常表示合并期间发生冲突）。这是为了可能想要发出自定义消息的瓷器。

如果`git merge-index`使用多个<file> s（或-a）调用，则它将依次处理它们，只有在合并返回非零退出代码时才会停止。

通常，这是通过一个脚本调用 Git 模仿RCS包中的`merge`命令来运行的。

`git merge-one-file`分发中包含调用的示例脚本。

警报警报！Git“合并对象顺序”与RCS `merge`程序合并对象顺序不同。在上述顺序中，原件是第一个。但是，3路合并程序的参数`merge`是将原件放在中间。不要问我为什么。

示例:

    torvalds@ppc970:~/merge-test> git merge-index cat MM

    This is MM from the original tree.                        # original

    This is modified MM in the branch A.                        # merge1

    This is modified MM in the branch B.                        # merge2

    This is modified MM in the branch B.                        # current contents

亦或是

    torvalds@ppc970:~/merge-test> git merge-index cat AA MM

    cat: : No such file or directory

    This is added AA in the branch A.This is added AA in the branch B.This is added AA in the branch B.fatal: merge program failed

后面的例子显示了`git merge-index`一旦任何事情返回错误后，如何停止尝试合并（即，`cat`为 AA 文件返回错误，因为它不存在于原始文件中，因此`git merge-index`甚至没有尝试合并 MM 事物）。