Respuestas:
Tanto la entrada como la salida son diferentes:
git applylleva un parche (por ejemplo, la salida de git diff) y lo aplica al directorio de trabajo (o índice, si --indexo --cachedse utiliza).git amtoma un buzón de confirmaciones formateadas como mensajes de correo electrónico (por ejemplo, la salida de git format-patch) y las aplica a la rama actual.git amusa git applydetrás de escena , pero hace más trabajo antes (leer un Maildiro mbox, y analizar mensajes de correo electrónico) y después (crear confirmaciones).
git applyparece aceptar también la git format-patchsalida.
git applytambién funcionaría para la salida de git format-patch, pero los cambios no se realizarían por etapas y tendrían que confirmarse (creando así un punto de confirmación diferente en el índice al que se aplican). Con git amusted llevaría la información de confirmación (junto con el autor, etc.) al índice al que se aplica. git applyluego es para parchar su repositorio (malo), git ampuede tomar cambios legítimos de características e incluirlo en su repositorio (enfoque preferido).
git applyes para aplicar diferencias directas (por ejemplo, desde git diff) mientras que git ames para aplicar parches y secuencias de parches de correos electrónicos, ya sea en formato mbox o Maildir, y es el "opuesto" de git format-patch. git amintenta extraer mensajes de confirmación y detalles del autor de los mensajes de correo electrónico, por lo que puede realizar confirmaciones.
Cuando git amaplique el parche, si lo usa git status, no verá ningún cambio local.
git applyle permite realizar los cambios en los archivos de origen como si estuviera escribiendo el código usted mismo, en consecuencia git statusy git diffgenerará los cambios realizados en el parche que ha aplicado, luego puede corregir / agregar más cambios y enviarlos juntos como un nuevo parche .
ampodría considerarse como una abreviatura deApply Mail...