Ответы:
И вход, и выход отличаются:
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
может принимать законные изменения функций и включать его в репо (предпочтительный подход).
git apply
предназначен для применения прямых различий (например, from git diff
), тогда как git am
предназначен для применения исправлений и последовательностей исправлений из электронных писем в формате mbox или Maildir и является «противоположностью» git format-patch
. git am
пытается извлечь сообщения о фиксации и данные об авторе из сообщений электронной почты, поэтому он может совершать фиксации.
С git am
вами примените патч, поэтому, если вы используете, git status
вы не увидите никаких локальных изменений.
git apply
позволяет вносить изменения в исходных файлах , как если бы вы писать код самостоятельно, следовательно , git status
и git diff
будут выводить изменения , внесенные в патче вы применили, то вы можете исправить / добавить больше изменений и представить их вместе , как один новый патч ,
am
можно рассматривать как сокращение отApply Mail
...