設定と構成
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
Eメール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの規約
- 日々のGit
- よくある質問 (FAQ)
- 用語集
- フック
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
低レベルコマンド
- 2.46.1 → 2.47.0 変更なし
-
2.46.0
07/29/24
- 2.45.1 → 2.45.2 変更なし
-
2.45.0
04/29/24
- 2.43.1 → 2.44.2 変更なし
-
2.43.0
11/20/23
- 2.42.2 → 2.42.3 変更なし
-
2.42.1
11/02/23
- 2.41.1 → 2.42.0 変更なし
-
2.41.0
06/01/23
- 2.40.1 → 2.40.3 変更なし
-
2.40.0
03/12/23
- 2.38.1 → 2.39.5 変更なし
-
2.38.0
10/02/22
- 2.35.1 → 2.37.7 変更なし
-
2.35.0
01/24/22
- 2.33.2 → 2.34.8 変更なし
-
2.33.1
10/12/21
- 2.32.1 → 2.33.0 変更なし
-
2.32.0
06/06/21
- 2.31.1 → 2.31.8 変更なし
-
2.31.0
03/15/21
- 2.30.1 → 2.30.9 変更なし
-
2.30.0
12/27/20
- 2.27.1 → 2.29.3 変更なし
-
2.27.0
06/01/20
- 2.26.1 → 2.26.3 変更なし
-
2.26.0
03/22/20
- 2.25.1 → 2.25.5 変更なし
-
2.25.0
01/13/20
- 2.22.1 → 2.24.4 変更なし
-
2.22.0
06/07/19
- 2.17.1 → 2.21.4 変更なし
-
2.17.0
04/02/18
- 2.11.4 → 2.16.6 変更なし
-
2.10.5
09/22/17
-
2.9.5
07/30/17
- 2.8.6 変更なし
-
2.7.6
07/30/17
-
2.6.7
05/05/17
- 2.4.12 → 2.5.6 変更なし
-
2.3.10
09/28/15
- 2.2.3 変更なし
- 2.1.4 変更なし
-
2.0.5
12/17/14
概要
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=<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>)…] git am (--continue | --skip | --abort | --quit | --retry | --show-current-patch[=(diff|raw)] | --allow-empty)
説明
メールボックス内のメールメッセージをコミットログメッセージ、作成者情報、およびパッチに分割し、現在のブランチに適用します。マージのない直線的な履歴を持つブランチで実行される git-format-patch[1] の逆操作と考えることができます。
オプション
- (<mbox>|<Maildir>)…
-
パッチを読み込むメールボックスファイルのリスト。この引数を指定しない場合、コマンドは標準入力から読み取ります。ディレクトリを指定した場合、それらはMaildirとして扱われます。
- -s
- --signoff
-
自分のコミッターIDを使用して、コミットメッセージに
Signed-off-by
トレーラーを追加します。詳細については、git-commit[1] のsignoffオプションを参照してください。 - -k
- --keep
-
git mailinfo に
-k
フラグを渡します(git-mailinfo[1] を参照)。 - --keep-non-patch
-
git mailinfo に
-b
フラグを渡します(git-mailinfo[1] を参照)。 - --[no-]keep-cr
-
--keep-cr
を使用すると、行末のCRが削除されないように、同じオプションで git mailsplit (git-mailsplit[1] を参照)が呼び出されます。am.keepcr
設定変数を使用してデフォルトの動作を指定できます。--no-keep-cr
はam.keepcr
をオーバーライドするのに役立ちます。 - -c
- --scissors
-
scissors行より前の本文のすべてを削除します(git-mailinfo[1] を参照)。
mailinfo.scissors
設定変数を使用してデフォルトで有効にすることができます。 - --no-scissors
-
scissors行を無視します(git-mailinfo[1] を参照)。
- --quoted-cr=<action>
-
このフラグは git mailinfo に渡されます(git-mailinfo[1] を参照)。
- --empty=(drop|keep|stop)
-
パッチのない電子メールメッセージの処理方法
- -m
- --message-id
-
git mailinfo に
-m
フラグを渡します(git-mailinfo[1] を参照)。これにより、Message-IDヘッダーがコミットメッセージに追加されます。am.messageid
設定変数を使用してデフォルトの動作を指定できます。 - --no-message-id
-
コミットメッセージにMessage-IDヘッダーを追加しません。
no-message-id
はam.messageid
をオーバーライドするのに役立ちます。 - -q
- --quiet
-
静かにします。エラーメッセージのみを出力します。
- -u
- --utf8
-
git mailinfo に
-u
フラグを渡します(git-mailinfo[1] を参照)。電子メールから取得されたコミットログメッセージの候補は、UTF-8エンコーディングに再コード化されます(設定変数i18n.commitEncoding
を使用して、UTF-8でない場合にプロジェクトの preferred エンコーディングを指定できます)。これは以前のバージョンのgitではオプションでしたが、現在はデフォルトです。
--no-utf8
を使用してこれをオーバーライドできます。 - --no-utf8
-
git mailinfo に
-n
フラグを渡します(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
は、rerereが行ったことを再確認し、潜在的な誤マージをキャッチしてから、別のgit add
で結果をインデックスにコミットするための良い方法です。 - --ignore-space-change
- --ignore-whitespace
- --whitespace=<action>
- -C<n>
- -p<n>
- --directory=<dir>
- --exclude=<path>
- --include=<path>
- --reject
-
これらのフラグは、パッチを適用する git apply (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
-
現在の差分をスキップします。これは、中断されたパッチを再開する場合にのみ意味があります。
- -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
-
元のブランチを復元し、パッチ適用操作を中止します。
am
操作に関連するファイルの内容を、am
操作前の状態に戻します。 - --quit
-
パッチ適用操作を中止しますが、HEADとインデックスは変更しません。
- --retry
-
最後に競合したパッチの適用を再試行します。再試行に特別なオプション(例:
--3way
)を渡す場合を除き、通常は同じエラーが再び発生するため、あまり役に立ちません。 - --show-current-patch[=(diff|raw)]
-
競合のため
git am
が停止した時点のメッセージを表示します。raw
を指定すると、電子メールメッセージの生の内容が表示されます。diff
を指定すると、差分部分のみが表示されます。デフォルトはraw
です。 - --allow-empty
-
パッチのない入力電子メールメッセージでパッチの適用に失敗した後、電子メールメッセージの内容をログメッセージとして空のコミットを作成します。
解説
コミット作成者の名前はメッセージの "From: " 行から取得され、コミット作成日付はメッセージの "Date: " 行から取得されます。 "Subject: " 行は、共通のプレフィックス "[PATCH <anything>]" を削除した後、コミットのタイトルとして使用されます。 "Subject: " 行は、コミットの内容を1行のテキストで簡潔に説明することになっています。
本文の先頭にある "From: "、 "Date: "、 "Subject: " 行は、ヘッダーから取得したそれぞれのコミット作成者名とタイトル値を上書きします。
コミットメッセージは、 "Subject: " から取得したタイトル、空行、およびパッチが始まるまでのメッセージ本文によって形成されます。各行の末尾にある余分な空白は自動的に削除されます。
パッチはメッセージの直後にインラインで記述されていると想定されます。次の形式の行は、
-
3つのダッシュと行末、または
-
"diff -" で始まる行、または
-
"Index: " で始まる行
パッチの開始と見なされ、コミットログメッセージはそのような行が初めて出現する前に終了します。
最初に git am
を呼び出すときは、処理するメールボックスの名前を指定します。適用されない最初のパッチが見つかると、途中で中止されます。これは、次の2つの方法のいずれかで回復できます。
-
--skip
オプションを指定してコマンドを再実行することで、現在のパッチをスキップします。 -
作業ディレクトリで競合を手動で解決し、インデックスファイルを更新して、パッチによって生成されるはずの状態にします。次に、
--continue
オプションを指定してコマンドを実行します。
コマンドは、現在の操作が完了するまで新しいメールボックスを処理することを拒否するため、最初からやり直す場合は、メールボックス名を指定してコマンドを実行する前に git am --abort
を実行します。
パッチが適用される前に、ORIG_HEADは現在のブランチの先端に設定されます。これは、間違ったブランチで *git am* を実行したり、メールボックスを変更することでより簡単に修正できるコミットのエラー(例: "From:" 行のエラー)など、複数のコミットで問題が発生した場合に役立ちます。
フック
このコマンドは、applypatch-msg
、pre-applypatch
、およびpost-applypatch
フックを実行できます。詳細は githooks[5] を参照してください。
設定
このセクションのこの行より下のすべては、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を記録し、それらのブロブがローカルで利用可能な場合(コマンドラインから `--3way` オプションを指定するのと同じ)、`git am` に3方向マージにフォールバックするように指示します。デフォルトは `false` です。git-am[1]を参照してください。
GIT
git[1] スイートの一部