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