との両方git am
をgit apply
使用して、パッチを適用できます。違いがわかりません。私は今違いを見ています:ファイルに触れるだけでコミットを作成しないのgit am
に対し、自動的にコミットします。git apply
それが唯一の違いですか?
質問する
93444 次
3 に答える
192
入力と出力の両方が異なります。
git apply
パッチ (例: の出力) を取得し、それを作業ディレクトリ (またはまたはが使用されgit diff
ている場合はインデックス) に適用します。--index
--cached
git am
電子メール メッセージとしてフォーマットされたコミットのメールボックス (例: の出力git format-patch
) を受け取り、それらを現在のブランチに適用します。
git am
git apply
バックグラウンドでを使用しますMaildir
が、前 (またはの読み取り、mbox
電子メール メッセージの解析) と後 (コミットの作成) でより多くの作業を行います。
于 2012-09-02T22:23:10.293 に答える
25
git apply
は直接差分 (例: からgit diff
)git am
を適用するためのものであり、 は mbox または Maildir 形式のいずれかの電子メールからパッチおよび一連のパッチを適用するためのものであり、git format-patch
. git am
電子メール メッセージからコミット メッセージと作成者の詳細を抽出しようとするため、コミットを行うことができます。
于 2012-09-02T22:21:01.753 に答える
15
パッチを適用するとgit am
、実行時にgit status
ローカルの変更は表示されませんがgit log
、パッチがソース コードにコミットされたことが示されます。
しかし、git apply
あたかも自分でコードを書いているかのようにソースファイルに変更を加えると、git status
適用git diff
したパッチに現れた変更が出力されます。したがって、git apply
より多くの変更を修正/追加し、git add
それらを単一の新しいパッチとしてまとめることができます。
于 2012-09-02T22:20:31.413 に答える