1 根据git 提交记录生成PATCH

1.git format-patch -1 commit_id生成git专用PATCH

如:git format-patch -1 e3faf9e06b6d1ca46d79e972ebf54daf00f68d87
生成:0001-test.patch 的补丁

2.检查该PATCH信息

如:git apply --stat 0001-test.patch

3.检查该PATCH是否能在指定源代码中合入

如:git apply --check 0001-test.patch
error: zyf/FileTrans/test.txt:已经存在于工作区中

如果没有任何输出,则表示可合入。如有错误会在终端输出。

2 合入PATCH到指定代码库中

1.git pull更新代码

2.git apply 0001-test.patch合入到本地

3.git status查看PATCH的修改

4.git commit -m "提交说明"

5.git push origin master将代码推送到服务器的主分支上

3 使用diff生成通用PATCH

1.使用diff commit1 commit2 > diff.patch可以生成通用PATCH,表示从commit1到commit2(含commit2)的修改生成PATCH文件

2.使用patch -p(n) < diff.patch合入PATCH,其中 n 代表路径的层级

4 注意事项

推荐使用git format-patch生成git 专用PATCH,因为我们在实际使用中发现,如果使用diff生成通用PATCH,对于删除文件的操作会出现失败的情况。如果没有删除操作的情况下diff的效率及通用性会比较好。

附录:参考

参考经验文档: https://blog.csdn.net/zyfzhangyafei/article/details/103610816