在处理无法正确应用的补丁时,请考虑使用两种解决方案之一:(
来自bugdromer的文章):
处理它的最简单方法是:
git am --abort
,
- 手动应用补丁
patch -p1 < PATCH
,
- 亲手解决冲突,
- 最后提交
git commit -a
.
但是在这种情况下,您将不得不重写提交消息,这不是很好。还有一个更聪明的方法。
可以在 中找到对应的补丁文件.git/rebase-apply
,并命名为“ 0001
”(补丁所在目录的名称最近发生了变化,这个是用1.7.4.1测试的)。
在此刻:
- 您可以
git apply
用于应用补丁,这是补丁命令的 git 等效项,
- 并以通常的方式修复冲突文件(检查
.rej
文件,将它们与冲突文件进行比较,最后将修复的文件添加到索引中):
例子:
$ git apply PATCH --reject
$ edit edit edit
$ git add FIXED_FILES
$ git am --resolved
你就完成了!
换句话说,由于git am
没有改变索引,你需要
git apply --reject
补丁(存储在 中.git/rebase-apply
),
- 手动解决冲突,
- 添加更改的文件和
- 最后告诉 git 你解决了这个问题。
这种情况下的好处是:
- 您无需重新编辑提交消息,
- 如果您正在应用一组补丁(即您正在使用
git am PATCHES
,PATCHES
邮箱在哪里),则不必一次git abort
又一次run git am
。