git am:修补程序格式检测失败

git am:修补程序格式检测失败,git,patch,wine,Git,Patch,Wine,我以前从未在Git上使用过补丁,我需要一些帮助。我正在尝试将一个补丁应用到Git回购协议中,以测试一个葡萄酒补丁。因此,我做了以下工作: $ git clone git://source.winehq.org/git/wine.git $ cd wine $ nano patch.p1 然后我用Ctrl+Shift+Vand粘贴了补丁的内容,并使用Ctrl+O进行保存。然后我试了一下: $ git am patch.p1 Patch format detection failed. 我做错了

我以前从未在Git上使用过补丁,我需要一些帮助。我正在尝试将一个补丁应用到Git回购协议中,以测试一个葡萄酒补丁。因此,我做了以下工作:

$ git clone git://source.winehq.org/git/wine.git
$ cd wine
$ nano patch.p1
然后我用Ctrl+Shift+Vand粘贴了补丁的内容,并使用Ctrl+O进行保存。然后我试了一下:

$ git am patch.p1
Patch format detection failed.

我做错了什么?我以前从未应用过修补程序。

修补程序格式检测失败。
可能意味着您使用了错误的命令:使用
git apply
而不是
git am
,或者相反

有关2之间差异的更多信息,请参见。

使用以下命令: 补丁-p1
  • 您将被要求指定“要修补的文件”,并提及完整路径/
  • 假设-R[n]:n
  • 还是申请?[n] :y
对修补程序中存在的所有文件执行此操作

  • 如果发生任何合并冲突,则检查“.rej”文件中的冲突,该文件具有 已生成并解决并应用这些更改
  • 执行“git添加”和“提交”更改

git am
应用邮箱格式的修补程序。您链接到的不是。您可以在上面使用git apply。然而,补丁中的代码是非常荒谬的,除非有一个相反的条件(通过负计数移位会产生未定义的行为)。@torek,
git apply
似乎起了作用,因为它没有给出错误。如果你想把这条评论发布给补丁创建者:我没有登录,也不打算创建一个,除非我真的开始使用Wine。但是:
+if(maskle)我的问题是,我在windows中生成了补丁,并尝试在linux中应用,但它不起作用。我必须在windows中应用它。我相信这与两个OS/Git配置之间的CRLF设置有关