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

名前

git-merge-index - マージが必要なファイルに対してマージを実行

概要

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

説明

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

オプション

--

これ以降の引数をオプションとして解釈しない。

-a

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

-o

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

-q

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

git merge-index が複数の <file> (または -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をマージしようとさえしませんでした)。

GIT

git[1] スイートの一部

scroll-to-top