В чем разница между git am и Git apply?



и git am и git apply может использоваться для применения патчей. Я не вижу разницы. Теперь я вижу разницу: git am автоматически фиксирует тогда как git apply только касается файлов, но не создает фиксацию. Это единственная разница?

555   3  

3 ответов:

и вход и выход различны:

  • git apply принимает патч (например, выход git diff) и применяет его к рабочему каталогу (или индексу, если --index или --cached используется).
  • git am принимает почтовый ящик фиксирует в виде сообщений электронной почты (например, вывод git format-patch) и применяет их к текущей ветке.

git am использует git apply за кулисами, но делает больше работы раньше (чтение Maildir или mbox, и разбор сообщений электронной почты) и после (создание коммитов).

git apply предназначен для применения прямых различий (например, от git diff), а git am для наложения заплат и последовательности патчи из писем, либо mbox или формата maildir и "обратную"git format-patch. git am пытается извлечь сообщения фиксации и сведения об авторе из сообщений электронной почты, поэтому он может совершать фиксации.

С git am применить патч, так что если вы используете git status вы не увидите никаких локальных изменений.

git apply позволяет вносить изменения в исходные файлы, как если бы вы писали код сами, поэтому git status и git diff будет выводить изменения, внесенные в патч вы применили, то вы можете исправить/добавить больше изменений и представить их вместе, как один новый патч.

Comments

    Ничего не найдено.