Git

名称

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>(或 -a),则它会依次处理它们,只有在 merge 返回非零退出代码时才会停止。

通常,这会与调用 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 文件)。

GIT

git[1] 套件的一部分

scroll-to-top