SYNOPSIS
git merge-file [-L <current-name> [-L <base-name> [-L <other-name>]]] [--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>] [--[no-]diff3] <current-file> <base-file> <other-file>
DESCRIPTION
git merge-file
は、 <base-file>
から <other-file>
へのすべての変更を <current-file>
に組み込みます。結果は通常 <current-file>
に入ります。 git merge-file
は、元のファイルへの個別の変更を組み合わせるのに役立ちます。 <base-file>
がオリジナルであり、 <current-file>
と <other-file>
の両方が <base-file>
の変更であるとすると、 git merge-file
は両方の変更を結合します。
<current-file>
と <other-file>
の両方の行の共通セグメントに変更がある場合、競合が発生します。競合が見つかった場合、「git merge-file」は通常、警告を出力し、 <<<<<<<
および >>>>>>>
マーカーを含む行で競合を囲みます。典型的な競合は以下のようになります:
<<<<<<< A
lines in file A
=======
lines in file B
>>>>>>> B
競合がある場合、ユーザーは結果を編集して、選択肢の1つを削除する必要があります。 ただし --ours
または --theirs
または --union
オプションが有効な場合、これらの競合は、 <current-file>
の行または <other-file>
の行または両方からの行を優先して解決します。競合マーカーの長さは --marker-size
オプションで指定できます。
このプログラムの終了値は、エラーの場合は負数であり、それ以外の場合は競合した数です(競合たくさんの場合は127に切り捨てられます)。マージがクリーンだった場合、終了値は0です。
git merge-file
は、RCS用マージの最小限のクローンになるように設計されています。つまり git(1) に必要なRCSのマージ機能をすべて実装します。
OPTIONS
-
-L <label>
-
このオプションは最大3回指定でき、競合レポートで対応するファイル名の代わりに使用するラベルを指定します。 つまり
git merge-file -L x -L y -L z a b c
は、ファイルa、b、cからではなく、ファイルx、y、zから来たように見える出力を生成します。 -
-p
-
<current-file>
を上書きする代わりに、結果を標準出力に送信します。 -
-q
-
静かにします(quiet)。競合について警告しないでください。
-
--diff3
-
diff3
スタイルで競合を表示します。 -
--zdiff3
-
zdiff3
スタイルで競合を表示します。 -
--ours
-
--theirs
-
--union
-
ファイルに競合を残す代わりに、競合部分の、our (または their または 両方)側に有利な競合解決します。
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
Part of the git(1) suite