因此,我试图将diff文件应用到我的git dev分支。我想申请的区别是这里的一个:move.patch
我用了git apply PATH_TO_PATCH.patch
现在,在尝试应用它时,我会得到大量的错误,这些错误累积在
fatal: git apply: bad git-diff - expected /dev/null on line 47
问题是第47行读取--- /dev/null
我在另一个论坛上看到有人说在/dev/null
部分之后有一个尾随的空白,但是没有。
如果有任何帮助的话,我也会在第9、10、11、12和13行中被抛出错误,尽管它们不是尾随空格。
无论如何,diff是由git生成的--我只是在复制并粘贴到记事本中。
我也尝试过使用curl https://github.com/mbabker/joomla-cms/compare/JHtml_move.patch | git am
,但这只是在没有指定位置的情况下出现了一个错误。
当这条线真的存在的时候,它为什么会产生致命的错误,有什么想法吗?
Update @IvanZuzak,我尝试在git am --ignore-space-change --ignore-whitespace PATH_TO_PATCH.patch
中添加,但是首先(因为这是下载的修补程序)出现了一个错误,说电子邮件无效(它已经转换成html代码),所以我尝试修复它,但它不时地出现。然后上面写着previous rebase directory PATH_TO_GITHUB_BRANCH/.git/rebase-apply still exists but mbox given.
。因此,我找到了这,它建议删除分支.git文件夹中的rebase-apply文件夹。因此,我这样做了,然后我又得到了无效的电子邮件错误(尽管我改变了两个格式的html格式)。
发布于 2013-09-12 19:38:37
我也有同样的问题:
fatal: git apply: bad git-diff - expected /dev/null on line 47
然而,第47行读取--- /dev/null
。我发现的问题是,行尾是Windows格式,而不是UNIX格式。用Notepad++将行尾转换为UNIX格式为我解决了这个问题。
发布于 2014-11-04 19:43:28
我也有过同样的问题。我打开了Git Bash (Cygwin工作也一样),并做了:
dos2unix.exe <patch-file>
然后我就能很好地应用这个补丁了。
发布于 2014-12-06 00:33:05
我也遇到了同样的问题,但我正在测试我将要发送到列表服务器的修补程序,下面的建议是:https://www.kernel.org/doc/Documentation/email-clients.txt。我不能仅仅解决本地文件上的问题,我需要分发一个可能会被gmail破坏的修补程序,并且我正在用git apply
检查gmail版本。
我的同事向我指出
git am
在纠正这类问题方面比git apply
更好,并且应该与.patch
文件一起使用。上面的一个评论提到了这一点,但它应该是一个答案。
https://stackoverflow.com/questions/15934101
复制相似问题