日本語 ▾ トピック ▾ 最新バージョン ▾ git-merge-index は 2.35.0 で最終更新されました

名前

git-merge-index - マージが必要なファイルのマージを実行

概要

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

説明

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

オプション

--

これ以降の引数をオプションとして解釈しません。

-a

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

-o

最初のエラーで停止する代わりに、すべてを一度に実行します。前のマージでエラーが返されてもマージを続行し、すべてのマージが完了した後にのみエラーコードを返します。

-q

マージプログラムの失敗について文句を言いません (マージプログラムの失敗は通常、マージ中の競合を示します)。これは、カスタムメッセージを出力したいポーセリン向けです。

git merge-index が複数の (ファイル) (または -a) で呼び出された場合、マージがゼロ以外の終了コードを返すまで順次処理します。

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

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