Respostas:
Tanto a entrada quanto a saída são diferentes:
git applypega um patch (por exemplo, a saída de git diff) e aplica-o ao diretório de trabalho (ou índice, se --indexou --cachedé usado).git ampega uma caixa de correio de confirmações formatadas como mensagens de email (por exemplo, a saída de git format-patch) e as aplica à filial atual.git amusa git applynos bastidores , mas faz mais trabalho antes (lendo um Maildirou mboxe analisando mensagens de email) e depois (criando confirmações).
git applyparece também aceitar git format-patchsaída.
git applyfuncionaria para a saída git format-patchtambém, mas as alterações seriam sem etapas e precisariam ser confirmadas (criando assim um ponto de confirmação diferente no índice ao qual são aplicadas). Com git amvocê, você estaria carregando as informações de confirmação (junto com o autor etc.) no índice ao qual é aplicada. git applyé para corrigir seu repo (ruim), git ampode fazer alterações legítimas nos recursos e incluí-lo no seu repo (abordagem preferida).
git applyé para aplicar diffs diretos (por exemplo, from git diff), ao passo que git amé para aplicar patches e sequências de patches de e-mails, no formato mbox ou Maildir e é o "oposto" de git format-patch. git amtenta extrair mensagens de confirmação e detalhes do autor de mensagens de email, e é por isso que ele pode fazer confirmações.
Com git ama aplicação do patch, se você o usar git status, não verá nenhuma alteração local.
git applypermite que você faça as alterações nos arquivos de origem como se você estivesse escrevendo o código por si mesmo, consequentemente git statuse git diffsaída vontade as alterações feitas no patch de ter aplicado, em seguida, você pode corrigir / adicionar mais mudanças e submetê-los juntos como um novo patch .
ampoderia ser pensado como uma abreviação deApply Mail...