git patch 冲突解决

1 git patch生成方法

git format-patch commit-id

commit-id 该次提交之后的所有patch,不包含commit-id这次提交

git format-patch commit-id1..commit_id2

commit-id1和commit-id2这两次提交之间的所有patch

git format-patch -M master

当前分支所有超前master的提交

git format-patch -n commit-id

某次提交(含)之前的几次提交,n指提交数,所有某次提交的patch命令为:git format-patch -1 commit-id


git format-patch命令生成的补丁文件默认从0001开始编号,使用提交信息中的第一行作为文件名称;

如果加上参数--numbered-files,则输出的补丁文件名称只有数字;

如果加上参数-o dir, 则制定了补丁文件的存储路径


2 应用patch文件

检查patch文件:git apply --stat xxx.patch

检查patch文件能否应用成功:git apply --check xxx.patch

打patch:git am xxx.patch


3 应用patch时出现冲突

应用patch有时会出现错误:

...

error:xxx does not apply

...

此时查看上述的错误信息得不到任何有关冲突的提示,可以使用下面的方法解决这个问题:

git apply --reject xxx.patch

这样可以先把没有冲突的文件进行合并,同时有冲突的文件会做出标记(会产生xxx.rej文件,xxx为文件名称),查看产生的rej文件即可得知产生冲突的代码片段,对产生冲突的文件进行修改,完成后可以删除rej文件,接着执行

git add 冲突文件

git add 其它无冲突文件

最后执行:

git am --resolved

便大功告成


参考文章:

https://blog.csdn.net/liuhaomatou/article/details/54410361

http://www.fwolf.com/blog/post/448

猜你喜欢

转载自blog.csdn.net/sole_cc/article/details/80641342