¿Cómo aplicar el parche `git diff` sin Git instalado?

¿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