Saltar al contenido
GitTree
guías de git4 minutos de lectura

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

Actualizado
  • 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.patch

Los 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.patch

format-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.patch

Luego 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 comparado con git am
git applygit am
LeeCualquier diferenciaArchivos de git format-patch o buzones de correo
ResultadoArchivos modificados, sin commitUn commit por parche
Mantiene el mensaje y el autor.Nosi
en un fracasoNo aplica nada por defectoSe 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 apply

El archivo cambió desde que se realizó el parche, por lo que sus líneas de contexto ya no coinciden. Pruebe estos en orden:

  1. git apply --3way fix.patch usa los blobs originales para fusionarse y deja marcadores de conflicto normales. Necesita esos blobs en su repositorio.
  2. git apply --whitespace=fix fix.patch ayuda cuando solo difieren los espacios o los finales de línea.
  3. git apply --reject fix.patch aplica lo que puede y escribe las partes fallidas en .rej archivos para que usted pueda hacerlo a mano.
  4. 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

  1. 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….

  2. 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.

  3. 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.

Crear parche a partir de confirmación... en el submenú Copiar de una confirmación en GitTree.
Crear parche a partir de confirmación... en el submenú Copiar de una confirmación en GitTree.GitTree interfaz con un repositorio de demostración.

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.