问题 运行'git apply'时出错


你可以告诉我,当我尝试时,如何解决'补丁不适用'错误 'git apply-patch'?

$ git apply 0001-my.patch
error: patch failed:test.xml:114
error: text.xml: patch does not apply

我的本地目录中有'test.xml'。当我做'git status'时,它表明我没有本地更改。

感谢您的任何帮助。


10668
2017-12-03 21:07


起源



答案:


你可以试试:

git am -3

如果补丁不能完全应用,请退回3路合并(git am DOC


qneill 提及 评论 那 git apply 现在有一个 --3way 选项

您现在可以应用补丁而无需减少上下文。
  因为它会在索引中留下冲突的一半,让你手动解决工作树中的冲突,“--3way“ 暗示 ”--index“,不能用”--cached“ 要么 ”--reject”。

你可以在里面看到它 git1.7.12发行说明 (2012年8月,原问题后不到3年)

git apply“当一个补丁不完全适用于您拥有的版本时,我学会了摆弄基础版本并执行三向合并。


12
2017-12-03 21:14



从1.7.11.1开始,看起来git-apply现在有一个--3way选项(参见 git.661346.n2.nabble.com/...) - qneill
@qneill好点。我编辑了答案以反映这一新功能。 - VonC


答案:


你可以试试:

git am -3

如果补丁不能完全应用,请退回3路合并(git am DOC


qneill 提及 评论 那 git apply 现在有一个 --3way 选项

您现在可以应用补丁而无需减少上下文。
  因为它会在索引中留下冲突的一半,让你手动解决工作树中的冲突,“--3way“ 暗示 ”--index“,不能用”--cached“ 要么 ”--reject”。

你可以在里面看到它 git1.7.12发行说明 (2012年8月,原问题后不到3年)

git apply“当一个补丁不完全适用于您拥有的版本时,我学会了摆弄基础版本并执行三向合并。


12
2017-12-03 21:14



从1.7.11.1开始,看起来git-apply现在有一个--3way选项(参见 git.661346.n2.nabble.com/...) - qneill
@qneill好点。我编辑了答案以反映这一新功能。 - VonC


那么,补丁有关于应该改变什么的信息。如果第一个与文件内容不匹配,则补丁不适用。


2
2017-12-03 21:11





或者您可能还想要使用main或origin进行rebase

git rebase origin

只是为了确保你在开始应用其他人的补丁之前,你已经在最新的变化。


0
2017-12-04 13:13