git merge-index

优质
小牛编辑
126浏览
2023-12-01

名称

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 事物)。