2009-11-30 2 views
9

Как я могу применить патч в моем репозитории местоположения в git?Как применить файл исправления в git

Я попытался $ мерзавца я < 0001-Add-Voicemail-элементный к Contacts.patch Patch не имеет действительный адрес электронной почты.

Я попытался $ мерзавец применять 0001-my.patch

, но я получаю фатальным: заголовок мерзавец дифф отсутствует информация имя файла (строка 27) , где линия 27 является "GIT двоичный патч" в моем файле патч. В моем файле исправления есть png.

это линия 24 и

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

ответ

18

Я был в состоянии воспроизвести вашу проблему, подделка конца-линии проблемы.

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

Предполагая, что вы работаете в Linux, попробуйте

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

Если вы используете Cygwin, выполнить противоположное преобразование:

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

Я думаю, что это что-то делать с двоичном файл в патче. – n179911

+0

Я смог взять рабочий патч и вызвать ошибку, которую вы видели. См. Отредактированный ответ. –

Смежные вопросы