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