セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット取得
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの慣習
- 日常のGit
- よくある質問 (FAQ)
- 用語集
- フック
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
プラミングコマンド
- 2.46.1 → 2.49.0 変更なし
-
2.46.0
2024-07-29
- 2.45.1 → 2.45.3 変更なし
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.3 変更なし
-
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
-
Signed-off-by
トレーラーをコミットメッセージに追加し、自身のコミッターIDを使用します。git-commit[1]の `signoff` オプションの詳細を参照してください。 - -k
- --keep
-
git mailinfo (詳細はgit-mailinfo[1]を参照) に
-k
フラグを渡します。 - --keep-non-patch
-
git mailinfo (詳細はgit-mailinfo[1]を参照) に
-b
フラグを渡します。 - --[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
-
-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 (詳細はgit-mailinfo[1]を参照) に渡します。メールから取得した提案されたコミットログメッセージはUTF-8エンコーディングに再エンコードされます (i18n.commitEncoding
設定変数を使用して、UTF-8でない場合にプロジェクトの優先エンコーディングを指定できます)。これは以前のバージョンの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
は、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はmbox形式のパッチに対して
--keep-cr
パラメータを指定してgit-mailsplitを呼び出します。この場合、git-mailsplitは\r\n
で終わる行から\r
を削除しません。コマンドラインから--no-keep-cr
を指定することでオーバーライドできます。git-am[1]、git-mailsplit[1]を参照してください。 - am.threeWay
-
デフォルトでは、パッチがクリーンに適用されない場合、
git am
は失敗します。trueに設定すると、この設定は、パッチが適用されるべきブロブのIDを記録しており、それらのブロブがローカルで利用可能な場合、git am
に3ウェイマージにフォールバックするよう指示します (コマンドラインから--3way
オプションを指定するのと同等)。デフォルトはfalse
です。git-am[1]を参照してください。
GIT
git[1] スイートの一部