回答:
入力と出力の両方が異なります。
git apply
パッチ(たとえばの出力git diff
)を取得し、それを作業ディレクトリ(または、--index
または--cached
が使用されている場合はインデックス)に適用します。git am
電子メールメッセージ(たとえばの出力git format-patch
)としてフォーマットされたコミットのメールボックスを取得し、現在のブランチに適用します。git am
はgit apply
舞台裏で使用しますが、前に(Maildir
またはを読んだり、mbox
電子メールメッセージを解析したり)、後(コミットを作成したり)の作業が増えます。
git apply
も受け入れるようgit format-patch
です。
git apply
からの出力でgit format-patch
も機能しますが、変更はステージングされず、コミットする必要があります(したがって、変更が適用されるインデックスに別のコミットポイントを作成します)。ではgit am
、あなたはそれが適用されたインデックスに(著者、などと一緒に)コミット情報を運ぶことになります。git apply
次に、リポジトリにパッチを適用するため(不良)、git am
正当な機能の変更を取り、それをリポジトリに含めることができます(推奨されるアプローチ)。
am
Apply Mail
...の略語と考えることができます