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 rebase
とgit 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)できます:
-
--skip
オプションを指定してコマンドを再実行し、現在のパッチをスキップします。 -
作業ディレクトリの競合を手動で解決し、インデックスファイルを更新して、パッチが生成するはずの状態にします。その次に、
--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