永发信息网

如何打patch 及git 打patch 失败的处理方法

答案:2  悬赏:40  手机版
解决时间 2021-04-04 10:03
  • 提问者网友:鼻尖触碰
  • 2021-04-03 13:04
如何打patch 及git 打patch 失败的处理方法
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-04-03 14:13
正如你所见,如果冲突发生,git只是输出上述信息,然后就停下来。一个小冲突会导致整个patch都不会被集成。

处理这种问题的最简单方法是先使用 git am --abort,然后手动的添加此patch, patch -p1 < PATCH,手动解决掉代码冲突,最后使用 git commit -a 提交代码。但是这样做有个问题就是你会失去PATCH中原本包含的commit信息(比如From,Date,Subject,Signed-off-by等)。应该有一种更聪明的方法。

在 .git/rebase-apply 目录下,存放着相应的补丁文件,名字是“0001” (在更新的git版本中,存放补丁文件的目录名有所改变,这里使用的git版本是 1.7.4.1)。

事实上,你可以使用 git apply 命令打patch(git apply 是git中的patch命令)。如同使用 patch -p1 命令时一样,然后手动解决代码冲突(检视生成的 .rej 文件,与冲突文件比较,修改冲突内容,并最终把文件加入到index中):

$ git apply PATCH --reject
$ edit edit edit
(译注:根据.rej文件手动解决所有冲突)
$ git add FIXED_FILES
$ git am --resolved。
全部回答
  • 1楼网友:行路难
  • 2021-04-03 14:42
失败的原因:git am执行的路径不对。 解决:在相应的git目录(或者他的子目录)下执行git am命令; 所谓相应的git目录,指的是你需要修改的文件所在的目录的上级或者上几级目录,往上找,直到找到有.git目录的路径,在那下面执行git am命令就好
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯