Cómo crear y aplicar un parche en Git
Un parche transporta cambios entre repositorios como un archivo de texto sin formato. A continuación se explica cuándo usar git diff o git format-patch, cuándo usar git apply o git am y cómo solucionar un parche que se niega a aplicarse.
Escrito por Kodmora
La casa de software detrás de GitTree
- Commits
- Mandos a distancia y push
En esta página
Para crear un parche, ejecute `git diff > fix.patch` para cambios no confirmados o `git format-patch -1 HEAD` para su última confirmación. Para aplicar uno, ejecute `git apply fix.patch` o `git am 0001-my-change.patch`. Utilice git apply cuando solo desee los cambios en su carpeta de trabajo. Utilice git am cuando desee la confirmación original, con su mensaje y autor.
¿Qué es un parche Git?
Un parche es un archivo de texto que enumera qué líneas eliminar y agregar en qué archivos. Es adecuado para momentos en los que no se puede enviar al mismo remoto: enviar una corrección por correo electrónico, mover un cambio entre repositorios no relacionados o mantener un cambio local fuera del control de versiones. Cuando usted y la otra persona comparten un remoto, una rama es más sencilla.
¿Cómo creo un parche a partir de cambios no confirmados?
# unstaged changes
git diff > fix.patch
# staged changes
git diff --staged > fix.patch
# everything since the last commit
git diff HEAD > fix.patch
# include binary files
git diff --binary > fix.patchLos archivos nuevos que no están preparados no aparecen en git diff. Ejecute git add en ellos primero y use --staged.
¿Cómo creo un parche a partir de confirmaciones?
# the last commit
git format-patch -1 HEAD
# the last three commits, one file each
git format-patch -3
# everything on this branch that main does not have
git format-patch main..feature/search -o patches/
# all of it in a single file
git format-patch main --stdout > feature.patchformat-patch escribe archivos con nombres como 0001-add-search-box.patch. Cada uno conserva el mensaje, el autor y la fecha de la confirmación, que un simple git diff pierde.
¿Cómo aplico un parche?
Compruébalo primero. Estos dos comandos no cambian nada:
# what it touches
git apply --stat fix.patch
# whether it will apply
git apply --check fix.patchLuego aplícalo de la forma que necesites:
# into the working folder, nothing staged
git apply fix.patch
# into the working folder and the staging area
git apply --index fix.patch
# as commits, with their messages and authors
git am patches/*.patch¿Cuál es la diferencia entre git apply y git am?
git apply | git am | |
|---|---|---|
| Lee | Cualquier diferencia | Archivos de git format-patch o buzones de correo |
| Resultado | Archivos modificados, sin commit | Un commit por parche |
| Mantiene el mensaje y el autor. | No | si |
| en un fracaso | No aplica nada por defecto | Se detiene; continuar o git am --abort |
¿Cómo soluciono "el parche no se aplica"?
error: patch failed: src/search.ts:14
error: src/search.ts: patch does not applyEl archivo cambió desde que se realizó el parche, por lo que sus líneas de contexto ya no coinciden. Pruebe estos en orden:
git apply --3way fix.patchusa los blobs originales para fusionarse y deja marcadores de conflicto normales. Necesita esos blobs en su repositorio.git apply --whitespace=fix fix.patchayuda cuando solo difieren los espacios o los finales de línea.git apply --reject fix.patchaplica lo que puede y escribe las partes fallidas en.rejarchivos para que usted pueda hacerlo a mano.- Verifique la confirmación a partir de la cual se creó el parche, aplíquelo allí y luego vuelva a crear la base.
Para git am, use git am --3way, resuelva el conflicto, git add el archivo y ejecute git am --continue. Para retroceder, ejecute git am --abort, como se indica en cómo cancelar una combinación o rebase.
¿Cómo deshago un parche?
git apply -R fix.patch-R aplica el parche al revés. Si usó git am, las confirmaciones son confirmaciones normales, así que deshagalas con `git reset` o `git revert`.
Cómo crear y aplicar un parche en GitTree
guardar un parche
Haga clic con el botón derecho en una confirmación y abra Copiar, luego Crear parche a partir de confirmación.... Seleccione varias confirmaciones para Crear parche a partir de confirmaciones… o haga clic con el botón derecho en un archivo modificado para Crear parche a partir de cambios de archivo….
Aplicar un parche
Ejecute Aplicar parche… desde la paleta de comandos y elija el archivo. GitTree dice cuántos archivos y confirmaciones contiene y si incluye cambios binarios.
Elige cómo aplicarlo
En Aplicar a, elija Solo árbol de trabajo (
git apply), Árbol de trabajo y organizar los cambios (git apply --index) o Como confirmaciones en la rama actual (git am), luego presione Aplicar.

La guía para crear y aplicar parches enumera todas las opciones.
Preguntas frecuentes
¿Cuál es la diferencia entre git diff y git format-patch?
git diff escribe solo los cambios. git format-patch escribe un archivo por confirmación con el mensaje, autor y fecha, para que git am pueda recrear la confirmación.
¿Git apply crea una confirmación?
No. Sólo cambia archivos. Revíselos y luego comprométase como de costumbre. Utilice git am para obtener confirmaciones.
¿Cómo aplico un parche de GitHub?
Agregue .patch al final de una URL de confirmación o solicitud de extracción en GitHub, descargue el archivo y ejecute git am en él.
¿Puede un parche incluir archivos binarios?
Sí, si lo creas con git diff --binary. git format-patch incluye cambios binarios de forma predeterminada.
¿Es mejor seleccionar cerezas que un parche?
Cuando ambas confirmaciones están en un repositorio o en un remoto recuperado, sí: `git cherry-pick` es más corto y rastrea la confirmación de origen. Los parches son para cuando los repositorios no pueden comunicarse entre sí.
Fuentes
Las afirmaciones sobre otros productos se compararon con sus páginas oficiales el 7 de noviembre de 2026. Los precios y las características cambian; Las páginas de los proveedores son la fuente de la verdad.
