Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在git中应用补丁文件_Git - Fatal编程技术网

如何在git中应用补丁文件

如何在git中应用补丁文件,git,Git,如何在git中的位置存储库中应用补丁 我试过了 $git am

如何在git中的位置存储库中应用补丁

我试过了 $git am<0001-Add-Voicemail-tab-to-Contacts.patch 修补程序没有有效的电子邮件地址

我试过了 $git应用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{=
diff--git a/res/drawable finger/icl.png b/res/drawable finger/icl.png
新文件模式100644
索引0000000000000000000000000000000000..f78e65cf94d22059e0caeb90caee03e17166f109
GIT二进制补丁
文字1697

zcmV;S244AzP)我可以通过假装一个终端问题来重现你的问题

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

我认为这与修补程序中的二进制文件有关。我能够获取一个工作修补程序并导致您看到的错误。见编辑后的答案。