Git应用补丁无声地失败(没有错误但没有任何反应)

时间:2014-07-18 09:18:28

标签: git patch msysgit

我试图应用补丁,git应用补丁并没有给我任何错误:

sashoalm@SASHOALM-PC /c/Workspace/tesseract-git/api (master)
$ git apply ../../commit-d0d9477

sashoalm@SASHOALM-PC /c/Workspace/tesseract-git/api (master)
$

如您所见,没有给出错误消息。但是当我打开历史记录时,没有提交任何内容,索引为空。好像我还没有发出git apply命令。

我不知道怎么解决这个问题,因为Google没有错误。

编辑:我忘了说,但是我试图从Tesseract的存储库中移植我的补丁,在那里我获得了没有版本控制的源代码,创建了我自己的空git repo,并做了一些提交。后来我使用git svn克隆了Tesseract存储库,现在我试图将补丁移到那里。

2 个答案:

答案 0 :(得分:43)

我在谷歌搜索时发现了这个问题:http://data.agaric.com/git-apply-does-not-work-from-within-local-checkout-unrelated-git-repository

  当在git存储库的本地检出中使用时,

git apply将无法执行任何操作(除了为该项目制作补丁的项目之外),例如,如果要修补其中的模块Git版本控制中的网站。

     

改为使用patch -p1 < path/file.patch

答案 1 :(得分:0)

除了B_的答案,您可能会认为使用git diff --no-prefix意味着您不需要在patch上使用-p标志。看来您会错,至少在patch的版本(2.5)中,没有-p标志与-p0不同。 -p0有效。