¿Cómo puede mi cliente aplicar el parche creado por git diff
sin instalar git? He tratado de usar el command de patch
pero siempre pide el nombre del file al parche.
git diff > patchfile
y
patch -p1 < patchfile
trabajo, pero como mucha gente se dio count en los comentarios y otras respuestas, el parche no entiende agrega, elimina y cambia el nombre. No hay otra opción que git apply patchfile
si necesita manejar el file agrega, elimina y cambia el nombre.
EDITAR Diciembre de 2015
Las versiones más recientes de patch
command (2.7, publicado en septiembre de 2012) admiten la mayoría de las características del formatting "diff – git", incluidos cambios de nombre y copys, cambios de permissions y diferencias de enlace simbólico (pero aún no diferencias binarias) ( anuncio de lanzamiento ).
Por lo tanto, con la condición de que se use la versión actual / última del patch
no es necesario usar git
para poder aplicar su parche como parche.
testing esto:
patch -p1 < patchfile
Utilizar
git apply patchfile
si es posible.
patch -p1 < patchfile
tiene un efecto secundario potencial.
git apply
también maneja las adiciones de files, elimina y cambia el nombre si están descritas en el formatting git diff
, qué patch
no funcionará. Finalmente, git apply
es un model de "aplicar todo o abortar todo" en el que se aplica todo o nada, mientras que el parche puede aplicar parcialmente files de parche, lo que deja su directory de trabajo en un estado extraño.
yo suelo
patch -p1 --merge < patchfile
De esta manera, los conflictos pueden resolverse como de costumbre.
Prueba esto:
$ git apply file.diff