Ответы:
И вход, и выход отличаются:
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...