【发布时间】:2013-04-02 18:45:23
【问题描述】:
所以我试图使用将差异文件应用到我的 git dev 分支。我想应用的差异是这里的:https://github.com/mbabker/joomla-cms/compare/JHtml_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 行出现尾随空格的错误 - 尽管它们不是任何尾随空格。
无论如何,差异是由 git 生成的 - 我只是将其复制并粘贴到记事本中。
我也尝试过使用curl https://github.com/mbabker/joomla-cms/compare/JHtml_move.patch | git am,但这只会给出错误而没有指定位置。
关于为什么当线路实际存在时它会给出致命错误的任何想法????
更新到@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.。所以我发现this 建议删除分支.git 文件夹中的rebase-apply 文件夹。所以我这样做了,然后我又收到了无效的电子邮件错误(尽管我已经将这两个都改成了 html 格式)
【问题讨论】:
-
复制/粘贴?记事本?严肃的?我敢打赌,DOS换行符是问题所在。尝试正确复制补丁文件。
-
好吧,我首先尝试使用 curl 失败了 - 但是当失败时是记事本。那我该如何复制补丁文件呢?
-
只需将其保存为浏览器中的文件? CTRL+s 是保存当前打开网页的常用键盘快捷键。另外,当 curl 组合失败时,您会遇到什么错误?
-
@IvanZuzak 添加了带有 curl 错误的屏幕截图。补丁移动以删除那里提到的两个文件。它们肯定存在于 git 项目中。我尝试从浏览器中保存,但它试图删除的所有其他文件以类似的方式出现了更多错误。
-
@GeorgeWilson 你能试试
git am --ignore-space-change --ignore-whitespace PATH_TO_PATCH.patch看看是否有效吗?另外,请注意使用git am和git apply之间存在差异,使用https://github.com/mbabker/joomla-cms/compare/JHtml_move.patch和https://github.com/mbabker/joomla-cms/compare/JHtml_move.diff之间也存在差异(注意补丁与差异文件扩展名)。git am适用于 .patch 文件,而git apply适用于 .diff(至少应该如此)。