Как я могу применить файл патча в Git - PullRequest
9 голосов
/ 30 ноября 2009

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

Я пытался $ git am <0001-Add-Voicemail-tab-to-Contacts.patch Патч не имеет действующего адреса электронной почты. </p>

Я пытался $ git apply 0001-my.patch

но я получаю фатально: в заголовке git diff отсутствует информация о имени файла (строка 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{=

1 Ответ

18 голосов
/ 30 ноября 2009

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

$ 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 !$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...