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