Відповіді:
І вхід, і вихід відрізняються:
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призначений для застосування прямої різниці (наприклад, від git diff), тоді git amяк для застосування патчів і послідовностей патчів з електронних листів, або формату mbox або Maildir, є "протилежним" git format-patch. git amнамагається витягнути повідомлення електронної пошти та деталі автора з повідомлень електронної пошти, тому він може робити зобов’язання.
Коли git amви застосуєте виправлення, тож якщо ви не використовуєте, git statusви не побачите локальних змін.
git applyдає змогу вносити зміни у вихідні файли так, як ніби ви писали код самостійно, отже, git statusі git diffвиводить зміни, внесені в патч, який ви застосували, ви можете виправити / додати більше змін та подати їх разом як один новий патч .
amможна вважати абревіатуроюApply Mail...