2009-11-30 4 views
9

Comment puis-je appliquer un correctif dans mon référentiel d'emplacements dans git?Comment puis-je appliquer un correctif dans git

J'ai essayé $ git am < 0001-Add-Voicemail-tab-to-Contacts.patch Patch ne dispose pas d'une adresse e-mail valide.

J'ai essayé $ git applique 0001-my.patch

mais je reçois fatale: git tête diff manque d'informations de nom de fichier (ligne 27) où la ligne 27 est "GIT correctif binaire" dans mon fichier de patch. Mon fichier de correctif contient un png.

c'est la ligne 24 et sur

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{= 

Répondre

18

j'ai pu reproduire votre problème en truquant un problème de fin de ligne.

$ 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) 

En supposant que vous utilisez Linux, essayez

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

Si vous utilisez Cygwin, effectuer la conversion inverse:

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

Je pense qu'il est quelque chose à voir avec le binaire fichier dans le patch. – n179911

+0

J'ai été capable de prendre un patch de travail et d'induire l'erreur que vous avez vue. Voir la réponse éditée. –

Questions connexes