SYNOPSIS
gitam[--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=<action>] [-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>)…] gitam(--continue|--skip|--abort|--quit|--retry|--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フラグをgitmailinfoに渡します(git-mailinfo(1) 参照)。 -
--keep-non-patch -
-bフラグをgitmailinfoに渡します(git-mailinfo(1) 参照)。 -
--[no-]keep-cr -
--keep-crを使用して、同じオプションでgitmailsplit(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> -
このフラグは
gitmailinfoに渡されます(git-mailinfo(1) 参照)。 -
--empty=(drop|keep|stop) -
パッチが入ってない電子メール・メッセージをどのように処理するかを指定します:
-
drop -
その電子メール・メッセージはスキップします。
-
keep -
電子メール・メッセージの内容をログとして含む空のコミットが作成されます。
-
stop -
コマンドは失敗(fail)し、 現在の「am」セッションの途中で停止(stop)します。 これがデフォルトの振る舞いです。
-
-
-m -
--message-id -
-mフラグをgitmailinfo(git-mailinfo(1) 参照)に渡して、Message-IDヘッダーがコミットメッセージに追加されるようにします。am.messageid構成変数を使用して、デフォルトの動作を指定できます。 -
--no-message-id -
コミットメッセージにMessage-IDヘッダーを追加しないでください。
no-message-idは、am.messageidを上書きするのに役立ちます。 -
-q -
--quiet -
静かにします。エラーメッセージのみ出力します。
-
-u -
--utf8 -
-uフラグをgitmailinfoに渡します(linkgit:git-mailinfo [1]を参照)。 電子メールから取得された、提案されたコミットログメッセージは、UTF-8エンコーディングに再コーディングされます(UTF-8でない場合は、構成変数i18n.commitEncodingを使用して、プロジェクトの優先エンコーディングを指定できます)。これは以前のバージョンのgitではオプションでしたが、現在はデフォルトです。
--no-utf8を使用してこれをオーバーライドできます。 -
--no-utf8 -
-nフラグをgitmailinfoに渡します(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は、別のgitaddで結果をインデックスにコミットする前に、「rerere」が行ったことを再確認し、潜在的な間違いマージ(mismerges)を捉える良い方法です。 -
--ignore-space-change -
--ignore-whitespace -
--whitespace=<action> -
-C<n> -
-p<n> -
--directory=<dir> -
--exclude=<path> -
--include=<path> -
--reject -
これらのフラグは、パッチを適用する
gitapply(git-apply(1) 参照)プログラムに渡されます。--whitespaceオプションの有効な <action> は、nowarn,warn,fix,error,error-allです。 -
--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を使用するように通知する標準メッセージをオーバーライドします。 これは、gitrebaseとgitamの間の内部使用のみを目的としています。 -
--abort -
元のブランチを復元(restore)し、パッチ操作を中止(abort)します。 am操作に関係するファイルの内容をam前の状態(pre-am state)に戻します(revert)。
-
--quit -
パッチ適用操作を中止しますが、HEADとインデックスはそのままにしておきます。
-
--retry -
最後に競合したパッチを再度適用しようと試みます。 これは通常、 再試行に追加のオプション(例:
--3way)を渡す場合にのみ役立ちます。 そうしないと、 同じ失敗が繰り返されるだけです。 -
--show-current-patch[=(diff|raw)] -
競合が原因で
gitamが停止(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
-
デフォルトでは、パッチが正しく適用されない場合、
gitamは失敗します。 trueに設定すると、この設定は、パッチが適用される予定のブロブのIDを記録し、それらのブロブをローカルで使用できる場合に、3方向マージにフォールバックするようにgitamに指示します(コマンドラインから--3wayオプションを指定するのと同じです)。 デフォルトはfalseです。 git-am(1)を参照してください。
SEE ALSO
GIT
Part of the git(1) suite