SYNOPSIS
gitmerge-file
[-L
<current-name> [-L
<base-name> [-L
<other-name>]]] [--ours
|--theirs
|--union
] [-p
|--stdout
] [-q
|--quiet
] [--marker-size=
<n>] [--
[no-
]diff3
] [--object-id
] <current> <base> <other>
DESCRIPTION
3 つのファイル <current> と <base> と <other> が与えられた場合、 git
merge-file
は <base> から <other> へのすべての変更を <current> に組み込みます。 通常、 結果は <current> に反映されます。 git
merge-file
は、 元のファイルに対する別々の変更を組み合わせるのに役立ちます。 <base> が元のファイルであり、 <current> と <other> の両方が <base> の変更であると仮定すると、 git
merge-file
は両方の変更を統合します。
<current> と <other> の両方の行の共通セグメントに変更がある場合、 競合が発生します。 競合が見つかった場合、「git merge-file」は通常、 警告を出力し、 <<<<<<< および >>>>>>> マーカーを含む行で競合を囲みます。 典型的な競合は以下のようになります:
<<<<<<< A
lines in file A
=======
lines in file B
>>>>>>> B
競合がある場合、ユーザーは結果を編集して、選択肢の1つを削除する必要があります。 ただし --ours
または --theirs
または --union
オプションが有効な場合、これらの競合は、 <current> の行または、 <other> の行または、その両方からの行を優先して解決します。競合マーカーの長さは --marker-size
オプションで指定できます。
--object-id
を指定した場合、 正確に同じ振る舞いをしますが、 マージするものをファイルとして指定する代わりに、 ブロブを参照するオブジェクトIDのリストを指定する点が異なります。
このプログラムの終了値は、エラーの場合は負数であり、それ以外の場合は競合した数です(競合たくさんの場合は127に切り捨てられます)。マージがクリーンだった場合、終了値は0です。
git
merge-file
は、RCS用マージの最小限のクローンになるように設計されています。つまり git(1) に必要なRCSのマージ機能をすべて実装します。
OPTIONS
-
--object-id
-
マージする内容をファイルでは無く、 現在のリポジトリ内のブロブとして指定します。 この場合、 操作は有効なリポジトリ内で行われなければなりません。
-p
オプションを指定した場合、 マージされたファイル(競合がある場合はそれを含む)は通常通り標準出力に出力されます。-p
オプションを指定し無い場合、 マージされたファイルはオブジェクト・ストアに書き込まれ、 そのブロブのオブジェクトIDが標準出力に書き込まれます。 -
-L
<label> -
このオプションは最大3回指定でき、競合レポートで対応するファイル名の代わりに使用するラベルを指定します。 つまり
git
merge-file
-L
x
-L
y
-L
z
a
b
c
は、ファイルa、b、cからではなく、ファイルx、y、zから来たように見える出力を生成します。 -
-p
-
<current> を上書きする代わりに、結果を標準出力に送信します。
-
-q
-
静かにします(quiet)。競合について警告しないでください。
-
--diff3
-
diff3
スタイルで競合を表示します。 -
--zdiff3
-
zdiff3
スタイルで競合を表示します。 -
--ours
-
--theirs
-
--union
-
ファイルに競合を残す代わりに、競合部分の、our (または their または 両方)側に有利な競合解決します。
-
--diff-algorithm=
{patience|minimal
|histogram
|myers
} -
マージ処理に異なる diff アルゴリズムを使用します。 現在のデフォルトは「myers」ですが、 「histogram」 のようなより新しいアルゴリズムを選択することで、 重要でない一致する行(例えば異なる関数のかっこなど)による誤ったマージを防ぐことができます。 詳細については、 git-diff(1)
--diff-algorithm
も参照してください。
EXAMPLES
-
git
merge-file
README.my
README
README.upstream
-
README以降のREADME.myとREADME.upstreamの変更を組み合わせて、それらをマージしようとし、結果をREADME.myに書き込みます。
-
git
merge-file
-L
a
-L
b
-L
c
tmp/a123
tmp/b234
tmp/c345
-
tmp/a123 と tmp/c345 をベースの tmp/b234 とマージしますが、
tmp/a123
とtmp/c345
の代わりにラベルa
とc
を使用します。 -
git
merge-file
-p
--object-id
abc1234
def567
890abcd
-
def567
以降の ブロブabc1234
と890abcd
の変更を組み合わせて、 それらをマージしようと試み、 結果を標準出力に書き込みます。
GIT
Part of the git(1) suite