2009-11-30 15 views
9

¿Cómo puedo aplicar un parche en mi repositorio de ubicación en git?¿Cómo puedo aplicar un archivo de parche en git

Probé $ git am < 0001-Add-Correo de Voz-tab-to-Contacts.patch Patch no tener una dirección válida de correo electrónico.

me trataron $ git-0001 aplica my.patch

pero me da fatal : cabecera git diff carece de información de nombre de archivo (línea 27) donde la línea 27 es "GIT parche binario" en mi archivo de revisión. Mi archivo de parche tiene un png.

Ésta es la línea 24 y en

diff --git a/res/drawable-finger/icl.png b/res/drawable-finger/icl.png 
new file mode 100644 
index 0000000000000000000000000000000000000000..f78e65cf94d22059e0caeb90caee03e17166f109 
GIT binary patch 
literal 1697 
zcmV;S244AzP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80000PbVXQnQ*UN; 
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&LrFwIRCwCNS6ygRXBd9-pOdCZnl?Wr 
zT}!*JMXxLc!LeIm!`%pu!FDwmis0~S-pnf*2)mHMWH7G;(JNtBW1={AA=C-BqUf{= 

Respuesta

18

yo era capaz de reproducir su problema falsificando un problema al final de la línea.

$ cp /bin/ls . 
$ git add ls; git commit -m second 
[master 8668716] second 
1 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100755 ls 
$ git format-patch HEAD^..HEAD 
0001-second.patch 
$ git reset --hard HEAD^ 
HEAD is now at 686ace7 first 
$ unix2dos 0001-second.patch 
$ git apply 0001-second.patch 
fatal: git diff header lacks filename information (line 14) 

Suponiendo que se está ejecutando Linux, intente

$ dos2unix 0001-Add-Voicemail-tab-to-Contacts.patch 
$ git apply !$ 

Si se está utilizando Cygwin, realizar la conversión opuesta:

$ unix2dos 0001-Add-Voicemail-tab-to-Contacts.patch 
$ git apply !$ 
+0

Creo que es algo que ver con el binario archivo en el parche. – n179911

+0

Pude tomar un parche de trabajo e inducir el error que vio. Ver respuesta editada. –

Cuestiones relacionadas