Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git am [--3way] [--abort] [--continue] [--skip] <mbox>...

Descripción

El comando git am ('apply mailbox') toma una serie de patches en formato email (típicamente generados por git format-patch) y los aplica como nuevos commits en el branch actual, preservando autor y mensaje.

Es la forma tradicional en la que el kernel de Linux y otros proyectos basados en mailing list aceptan contribuciones. Si surge un conflicto, git am --continue tras resolver.

En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.

Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

OpciónDescripción
--3wayFall back to three-way merge if patch doesn't apply cleanly.
--abortCancel an in-progress am.
--continue / --resolvedContinue after fixing conflicts.
--skipSkip the current patch.
-s, --signoffAdd Signed-off-by trailer.
-kPass -k to mailinfo (keep subject).
--whitespace=<action>Handle whitespace errors.

Ejemplos

git am patches/*.patch
# Apply a series of format-patch outputs

git am --3way --signoff incoming.mbox
# Three-way merge fallback, add sign-off lines

git am --abort
# Cancel after a hopeless conflict

curl -L https://lore.kernel.org/.../t.mbox.gz | gunzip | git am --3way
# Apply patches downloaded from a public list

Errores comunes

Forgetting --3way when patches were generated against a slightly different base often causes failures that --3way would handle. After resolving a conflict, run git am --continue, NOT git commit. Plain commit creates a malformed state.

Comandos relacionados

git apply, git format-patch, git send-email, git mailinfo