git am

Parches y reescritura

Aplica parches de archivos de correo como commits


El comando 'git am' (apply mailbox) toma los archivos de parche creados por git format-patch y convierte cada uno en un commit, conservando el autor, la fecha y el mensaje originales. Es el extremo receptor de las contribuciones por correo. Si un parche ya no se aplica, git am se detiene; arréglalo y ejecuta git am --continue, o abandona con git am --abort.

Sinopsis

git am [--signoff] [--3way] [<mbox> | <patch-file>...]
git am (--continue | --skip | --abort)
[ ] opcional| o<arg> valor a sustituir... repetible--flag opción

Opciones

Haz clic en una opción para desplegarla

Principiante (1)

Añade una línea Signed-off-by con tu nombre a cada commit.

Cuando haga faltaProyectos que exigen una cadena de firmas

Ejemplo

git am -s 0001-fix.patch

Intermedio (1)

Si un parche no se aplica limpiamente, recurre a una fusión a tres bandas (puede dejar conflictos).

RecomendadoAplicar parches hechos sobre una base algo más antigua

Ejemplo

git am -3 0001-fix.patch

Elegir la opción adecuada

Aplicar parches

¿Archivos o commits?

ComandoCrea un commit
git apply fix.patchNo — solo archivos
git am fix.patchSí — con el autor original

Ejemplos

Aplicar parches

git am 0001-*.patch

Cada archivo se convierte en un commit.


Añadir tu firma

git am -s 0001-fix.patch

Añade Signed-off-by con tu nombre.


Detener una aplicación fallida

git am --abort

Todo vuelve a como estaba.

Ejemplos de flujos de trabajo

1
git switch -c review main

Una rama para probarlos

2
git am ~/patches/*.patch

Aplicarlos

3
git log --oneline main..

Comprobar lo que llegó

Solución de problemas

error: patch failed … patch does not apply

Causa: Tus archivos difieren del contexto del parche

git am --abort, luego reintenta con --3way, o pide un parche con rebase

Consejos y trampas

Buenas prácticas

  • ✓Aplica los parches en una rama nueva, no directamente sobre main.

Errores comunes

  • ✗Usar git apply cuando quieres commits — apply solo cambia archivos.
  • ✗Dejar un git am fallido a medias: termina con --continue o --abort.

Preguntas frecuentes

A:

Significa «apply mailbox»: lee parches en formato de correo (mbox).