Відповіді:
І вхід, і вихід відрізняються:
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
...