SYNOPSIS

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

DESCRIPTION

これにより、インデックス内の <file> が検索され、マージエントリがある場合は、それらのファイルのSHA-1ハッシュが引数1、2、3(ファイルがない場合は空の引数)として、および、引数4として <file> が渡されます。引数1、2、3の3つのファイルのファイルモードは、引数5、6、7として渡されます。

OPTIONS

--

これ以後の引数をオプションとして解釈しないでください。

-a

インデックス内のマージが必要なすべてのファイルに対してマージを実行します。

-o

最初に失敗したマージで停止するのではなく、すべてを一度に実行します。前のマージでエラーが返された場合でもマージを続行し、すべてのマージ後にエラーコードを返します。

-q

マージプログラムの失敗について文句を言わないでください(マージプログラムの失敗は通常、マージ中の競合を示します)。 これは、カスタムメッセージを送信する可能性のある磁器コマンド用です。

git merge-index が複数の <file> (または -a )で呼び出された場合、それらを順番に処理し、マージがゼロ以外の終了コードを返した場合にのみ停止します。

通常、これは、RCSパッケージの「マージ」コマンドのGitの模倣を呼び出すスクリプトで実行されます。

git merge-one-file というサンプルスクリプトがディストリビューションに含まれています。

警告!警告!警告! Gitの「オブジェクトのマージ順序」は、RCSの「マージ」プログラムのオブジェクトのマージ順序とは異なります。上記の順番では、オリジナルが最初です。しかし、3方向マージプログラム「マージ」の引数の順序は、オリジナルを中央に置きます。理由は聞かないで…

例:

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

Part of the git(1) suite