セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.50.1 変更なし
-
2.50.0
2025-06-16
- 2.46.1 → 2.49.1 変更なし
-
2.46.0
2024-07-29
- 2.45.1 → 2.45.4 変更なし
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.4 変更なし
-
2.43.0
2023-11-20
- 2.42.2 → 2.42.4 変更なし
-
2.42.1
2023-11-02
- 2.41.1 → 2.42.0 変更なし
-
2.41.0
2023-06-01
- 2.40.1 → 2.40.4 変更なし
-
2.40.0
2023-03-12
- 2.38.1 → 2.39.5 変更なし
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 変更なし
-
2.35.0
2022-01-24
- 2.33.2 → 2.34.8 変更なし
-
2.33.1
2021-10-12
- 2.32.1 → 2.33.0 変更なし
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 変更なし
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 変更なし
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 変更なし
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 変更なし
-
2.26.0
2020-03-22
- 2.25.1 → 2.25.5 変更なし
-
2.25.0
2020-01-13
- 2.22.1 → 2.24.4 変更なし
-
2.22.0
2019-06-07
- 2.17.1 → 2.21.4 変更なし
-
2.17.0
2018-04-02
- 2.11.4 → 2.16.6 変更なし
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.8.6 変更なし
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.4.12 → 2.5.6 変更なし
-
2.3.10
2015-09-28
- 2.2.3 変更なし
- 2.1.4 変更なし
-
2.0.5
2014-12-17
概要
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
を使用すると、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=(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エンコーディングに再エンコードされます(UTF-8でない場合、i18n.commitEncoding
設定変数でプロジェクトの推奨エンコーディングを指定できます)。これは以前のバージョンのgitではオプションでしたが、現在はデフォルトです。
--no-utf8
を使用してこれを上書きできます。 - --no-utf8
-
git mailinfoに
-n
フラグを渡します(git-mailinfo[1]を参照)。 - -3
- --3way
- --no-3way
-
パッチがクリーンに適用されない場合、パッチが適用対象のブロブのIDを記録しており、それらのブロブがローカルで利用可能な場合は、3-wayマージにフォールバックします。
--no-3way
はam.threeWay設定変数を上書きするために使用できます。詳細については、git-config[1]のam.threeWayを参照してください。 --rerere-autoupdate
--no-rerere-autoupdate
-
rerereメカニズムが現在の競合に対して記録された解決策を再利用して作業ツリーのファイルを更新した後、その解決策の結果でインデックスも更新することを許可します。
--no-rerere-autoupdate
は、別のgit
add
で結果をインデックスにコミットする前に、rerere
が行ったことを再確認し、潜在的な誤マージをキャッチする良い方法です。 - --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はmbox形式のパッチに対してgit-mailsplitをパラメータ
--keep-cr
で呼び出します。この場合、git-mailsplitは\r\nで終わる行から\rを削除しません。コマンドラインから--no-keep-cr
を指定することで上書きできます。git-am[1]、git-mailsplit[1]を参照してください。 - am.threeWay
-
デフォルトでは、パッチがクリーンに適用されない場合、
git
am
は失敗します。trueに設定すると、この設定は、パッチが適用対象のブロブのIDを記録しており、それらのブロブがローカルで利用可能な場合、git
am
に3-wayマージにフォールバックするように指示します(コマンドラインから--3way
オプションを指定するのと同等です)。デフォルトはfalse
です。git-am[1]を参照してください。
GIT
git[1]スイートの一部