使用git应用diff文件

Geo*_*son 20 git github

所以我试图使用一个diff文件到我的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
Run Code Online (Sandbox Code Playgroud)

事情是第47行读 --- /dev/null

我在另一个论坛上看到有人说在/dev/null零件之后有一个尾随的空白区域,但没有.

如果它有任何帮助我也会被抛出第9,10,11,12和13行的白色空格的错误 - 尽管它们没有任何尾随的空白区域.

在任何情况下,差异都是由git生成的 - 我只是将其复制并粘贴到记事本中.

我也试过使用curl https://github.com/mbabker/joomla-cms/compare/JHtml_move.patch | git am但只是在没有指定位置的情况下给出错误.

来自curl尝试的错误消息

任何想法,为什么它的线路实际存在时给出一个致命的错误????


更新到@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..所以我发现建议删除branches .git文件夹中的rebase-apply文件夹.所以我做了那个然后我再次收到无效的电子邮件错误(尽管我已经改变了两个远离html格式的)

小智 42

我也有同样的问题:

fatal: git apply: bad git-diff - expected /dev/null on line 47
Run Code Online (Sandbox Code Playgroud)

然而第47行读到--- /dev/null.我发现的问题是行结尾是Windows格式而不是UNIX格式.在Notepad ++中将行结尾转换为UNIX格式为我解决了问题.

  • 我在Ubuntu上遇到了行结尾的问题.我使用apt-get install dos2unix安装了dos2unix,它就像一个魅力. (2认同)

big*_*llm 5

我遇到过同样的问题。我打开 Git Bash(Cygwin 也可以)并执行以下操作:

dos2unix.exe <patch-file>
Run Code Online (Sandbox Code Playgroud)

然后我就能完美地应用补丁。