¿Cómo aplicar el parche `git diff` sin Git instalado?
patch (5)
¿Cómo puede mi cliente aplicar el parche creado por git diff
sin git instalado? He intentado usar el comando patch
pero siempre pide el nombre del archivo al parche.
Prueba esto:
$ git apply file.diff
Utilizar
git apply patchfile
si es posible.
patch -p1 < patchfile
tiene efectos secundarios potenciales
git apply
también maneja los archivos agregados, eliminados y renombrados si están descritos en el formato git diff
, que patch
no sirve. Finalmente, git apply
es un modelo de "aplicar todo o abortar todo" en el que todo se aplica o nada, mientras que el parche puede aplicar parcialmente los archivos de parche, dejando su directorio de trabajo en un estado extraño.
prueba esto:
patch -p1 < patchfile
yo suelo
patch -p1 --merge < patchfile
De esta manera, los conflictos pueden resolverse como de costumbre.
git diff > patchfile
y
patch -p1 < patchfile
funciona, pero como mucha gente notó en los comentarios y otras respuestas, el parche no entiende agrega, elimina y cambia el nombre. No hay opción, pero git apply patchfile
si necesita manejar el archivo agrega, elimina y cambia el nombre.
EDITAR diciembre 2015
Las últimas versiones del comando patch
(2.7, lanzado en septiembre de 2012) son compatibles con la mayoría de las funciones del formato "diff --git", incluidos los cambios de nombre y copia, los cambios de permisos y los diffs de enlaces simbólicos (pero todavía no binarios) ( anuncio de lanzamiento ).
Por lo tanto, siempre que se use una versión actual / última del patch
no es necesario usar git
para poder aplicar su diff como parche.