SYNOPSIS

git am [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8] [--no-verify]
         [--[no-]3way] [--interactive] [--committer-date-is-author-date]
         [--ignore-date] [--ignore-space-change | --ignore-whitespace]
         [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
         [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
         [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>]
         [--quoted-cr=<action>]
         [--empty=(stop|drop|keep)]
         [(<mbox> | <Maildir>)…]
git am (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)] | --allow-empty)

DESCRIPTION

メールボックス内のメールメッセージを、 コミットログメッセージと作者情報とパッチに分割し、 それらを現在のブランチに適用します。 これは、 マージのない真っ直ぐな履歴を持つブランチで実行される git-format-patch(1) の逆の操作と考えることができます。

OPTIONS

(<mbox>|<Maildir>)…

パッチを読み取るメールボックスファイルのリスト。 この引数を指定しない場合、コマンドは標準入力から読み取ります。 ディレクトリを指定すると、それらはMaildirとして扱われます。

-s
--signoff

自分のコミッターIDを使用して、コミットメッセージに Signed-off-by トレーラーを追加します。 詳細については、 git-commit(1) のsignoffオプションを参照してください。

-k
--keep

-k フラグを git mailinfo に渡します(git-mailinfo(1) 参照)。

--keep-non-patch

-b フラグを git mailinfo に渡します(git-mailinfo(1) 参照)。

--[no-]keep-cr

--keep-cr を使用して、同じオプションで git mailsplit (git-mailsplit(1) 参照)を呼び出し、行末のCRが削除されないようにします。 am.keepcr 構成変数を使用して、デフォルトの動作を指定できます。 --no-keep-cr は、 am.keepcr をオーバーライドするのに役立ちます。

-c
--scissors

切り取り線行の前にある本体のすべてを削除します(git-mailinfo(1) 参照)。 mailinfo.scissors 構成変数を使用してデフォルトでアクティブ化できます。

--no-scissors

切り取り線を無視します(git-mailinfo(1) 参照)。

--quoted-cr=<action>

このフラグは git mailinfo に渡されます(git-mailinfo(1) 参照)。

--empty=(stop|drop|keep)

デフォルト、またはオプションが stop に設定されている場合、パッチの欠落した入力の電子メール・メッセージでコマンドがエラーになり、現在の am セッションの途中で停止(stop)します。 このオプションが drop に設定されている場合、代わりにそのような電子メール・メッセージをスキップします。 このオプションが keep に設定されている場合、空のコミットを作成し、電子メール・メッセージの内容をログとして記録します。

-m
--message-id

-m フラグを git mailinfo (git-mailinfo(1) 参照)に渡して、Message-IDヘッダーがコミットメッセージに追加されるようにします。 am.messageid 構成変数を使用して、デフォルトの動作を指定できます。

--no-message-id

コミットメッセージにMessage-IDヘッダーを追加しないでください。 no-message-id は、 am.messageid を上書きするのに役立ちます。

-q
--quiet

静かにします。エラーメッセージのみ出力します。

-u
--utf8

-u フラグを git mailinfo に渡します(linkgit:git-mailinfo [1]を参照)。 電子メールから取得された、提案されたコミットログメッセージは、UTF-8エンコーディングに再コーディングされます(UTF-8でない場合は、構成変数 i18n.commitEncoding を使用して、プロジェクトの優先エンコーディングを指定できます)。

これは以前のバージョンのgitではオプションでしたが、現在はデフォルトです。 --no-utf8 を使用してこれをオーバーライドできます。

--no-utf8

-n フラグを git mailinfo に渡します(git-mailinfo(1) 参照)。

-3
--3way
--no-3way

パッチが適切に適用されない場合、パッチが適用されるはずのブロブのIDを記録し、それらのブロブがローカルで使用できる場合は、3方向マージにフォールバックします。 --no-3way を使用して、 am.threeWay構成変数をオーバーライドできます。 詳細については、 git-config(1) のam.threeWayを参照してください。

--rerere-autoupdate
--no-rerere-autoupdate

rerere メカニズムが現在の競合で記録された解決を再利用して作業ツリー内のファイルを更新した後、解決の結果でインデックスも更新できるようにします。 --no-rerere-autoupdate は、別の git add で結果をインデックスにコミットする前に、「rerere」が行ったことを再確認し、潜在的な間違いマージ(mismerges)を捉える良い方法です。

--ignore-space-change
--ignore-whitespace
--whitespace=<option>
-C<n>
-p<n>
--directory=<dir>
--exclude=<path>
--include=<path>
--reject

これらのフラグは、パッチを適用する git apply (git-apply(1) 参照)プログラムに渡されます。

--patch-format

デフォルトでは、コマンドはパッチ形式を自動的に検出しようとします。 このオプションを使用すると、ユーザーは自動検出をバイパスして、パッチを解釈するパッチ形式を指定できます。 有効な形式は、mbox、mboxrd、stgit、stgit-series、hg です。

-i
--interactive

対話的に実行します。

-n
--no-verify

デフォルトでは pre-applypatch フックと applypatch-msg フックが実行されます。 --no-verify または -n のいずれかが指定された場合、 これらのフックはバイパスされます。 githooks(5) も参照してください。

--committer-date-is-author-date

デフォルトでは、コマンドは電子メールメッセージの日付をコミット作者の日付として記録し、コミットの作成時刻をコミッターの日付として使用します。 これにより、ユーザーは作者の日付と同じ値を使用して、コミッターの日付について嘘をつくことができます。

--ignore-date

デフォルトでは、コマンドは電子メールメッセージの日付をコミット作者の日付として記録し、コミットの作成時刻をコミッターの日付として使用します。 これにより、ユーザーはコミッターの日付と同じ値を使用して、作者の日付について嘘をつくことができます。

--skip

現在のパッチをスキップします。 これは、中止(abort)されたパッチを再スタートする場合にのみ意味があります。

-S[<keyid>]
--gpg-sign[=<keyid>]
--no-gpg-sign

GPG署名コミット。 keyid 引数はオプションであり、デフォルトでコミッターIDになります。 指定する場合は、スペースなしでオプションに固定する必要があります。 --no-gpg-sign は、 commit.gpgSign 構成変数と以前の --gpg-sign の両方を打ち消すのに役立ちます。

--continue
-r
--resolved

パッチが失敗した後(たとえば、競合するパッチを適用しようとした場合)、ユーザーはそれを手動で適用し、インデックスファイルに適用の結果が保存されます。 電子メールメッセージと現在のインデックスファイルから抽出された作者とコミットログを使用してコミットし、続行します。

--resolvemsg=<msg>

パッチ障害が発生すると、終了する前に<msg>が画面に出力されます。 これは、失敗を処理するために --continue または --skip を使用するように通知する標準メッセージをオーバーライドします。 これは、 git rebasegit am の間の内部使用のみを目的としています。

--abort

元のブランチを復元(restore)し、パッチ操作を中止(abort)します。 am操作に関係するファイルの内容をam前の状態(pre-am state)に戻します(revert)。

--quit

パッチ適用操作を中止しますが、HEADとインデックスはそのままにしておきます。

--show-current-patch[=(diff|raw)]

競合が原因で git am が停止(stop)したメッセージを表示します。 raw が指定されている場合、電子メールメッセージの生の内容を表示します。 diff の場合、diff部分のみを表示します。 デフォルトは raw です。

--allow-empty

パッチが欠落している入力の電子メール・メッセージでパッチが失敗した後、ログ・メッセージとして電子メール・メッセージの内容を含む空のコミットを作成します。

DISCUSSION

コミット作者名はメッセージの "From: " から取得され、コミット作者日付はメッセージの "Date: " 行から取得されます。 "Subject: " 行は、共通のプレフィックス [PATCH <anything>] を削除した後、コミットのタイトルとして使用されます。 "Subject: " 行は、コミットが何であるかを1行のテキストで簡潔に説明することになっています。

"From: " や "Date: " や "Subject: " の行で始まる本文は、ヘッダーから取得されたそれぞれのコミット作者名とタイトルの値をオーバーライドします。

コミットメッセージは、 "Subject: " から取得したタイトルと空行とパッチが開始されるところまでのメッセージの本文によって形成されます。 各行の終わりにある余分な空白(whitespace)は自動的に削除されます。

パッチは、メッセージの直後にインラインであることが期待されます。 以下の形式の行:

  • 3つのダッシュ(---)と行終端(end-of-line)、または

  • "diff -" で始まる行、または

  • "Index: " で始まる行

これらはパッチの開始と見なされ、そのような行が最初に出現する前でコミットログメッセージが終了します。

最初に git am を呼び出すときに、処理するメールボックスの名前を指定します。 適用されない最初のパッチを確認すると、途中で中止(abort)されます。 これからは、以下の2つの方法のいずれかで回復(recover)できます:

  1. --skip オプションを指定してコマンドを再実行し、現在のパッチをスキップします。

  2. 作業ディレクトリの競合を手動で解決し、インデックスファイルを更新して、パッチが生成するはずの状態にします。その次に、 --continue オプションを指定してコマンドを実行します。

このコマンドは、現在の操作が終了するまで新しいメールボックスの処理を拒否するため、最初からやり直す場合は、メールボックス名を指定してコマンドを実行する前に、 git am --abort を実行してください。

パッチが適用される前に、ORIG_HEADは現在のブランチの先端に設定されます。 これは、間違ったブランチで git am を実行したり、メールボックスを変更することでより簡単に修正できるコミットのエラー("From:" 行のエラーなど)など、複数のコミットに問題がある場合に役立ちます。

HOOKS

このコマンドは、 applypatch-msgフックとpre-applypatchフックとpost-applypatchフックを実行できます。 詳細については githooks(5) を参照してください。

CONFIGURATION

このセクションの以下のすべては、 git-config(1) ドキュメントの抜粋です。 内容は git-config(1) ドキュメント にあるものと同一です:

am.keepcr

trueの場合、 git-am は、パラメーター --keep-cr を使用してmbox形式のパッチに対して` git-mailsplit` を呼び出します。 この場合、 git-mailsplit\r\n で終わる行から \r を削除しません。 コマンドラインから --no-keep-cr を指定することでオーバーライドできます。 git-am(1)git-mailsplit(1) を参照してください。

am.threeWay

デフォルトでは、パッチが正しく適用されない場合、 git am は失敗します。 trueに設定すると、この設定は、パッチが適用される予定のブロブのIDを記録し、それらのブロブをローカルで使用できる場合に、3方向マージにフォールバックするように git am に指示します(コマンドラインから --3way オプションを指定するのと同じです)。 デフォルトは false です。 git-am(1)を参照してください。

SEE ALSO

GIT

Part of the git(1) suite