09-Git-补丁patch操作
文章目录
- 1. 介绍
- 2. 流程
- 3. 主要操作
- 3.1 打补丁
- 3.2 应用补丁
1. 介绍
Patch是一个文本文件,他的内容类型类似于Git diff,但是除了代码之外,它还有关于提交的元数据如提交id,日期,提交消息等。我们可以通过提交创建一个补丁,其他人可以将他们应用到他们的仓库中。
主要是根据tag发布发行版本之后,如果有重大bug,但是下个发行版本还没有发布计划的情况下,可以打补丁,补丁可以用于更新部分代码,修复bug
2. 流程
- 用户A创建了工程,提交了代码,打了tag,发行了tag
- 用户B下载了该tag,并且进行了应用
- 该tag可能有bug,用户A进行代码更新,并且打了补丁
- 这个时候,用户B需要应用补丁,应用最新的更改
3. 主要操作
上述流程步骤中,主要关键在于打补丁和应用补丁上,下面一一介绍
3.1 打补丁
使用git format-patch生成所需要的patch: 每一次提交都生成一个patch文件,包含代码和当次提交的元数据信息
当前分支所有超前master的提交:
git format-patch -M master某次提交以后的所有patch:(不包含当次提交)
git format-patch分支的commitId
git format-patch 93188a2
从根到指定提交的所有patch:(包含当次提交)
git format-patch --root分支的commitId
git format-patch --root 93188a2
某两次提交之间的所有patch:(不包含头,包含尾)
git format-patch开始的commitId
…结束的commitId
git format-patch 93188a2..9d616432
某次提交(含)之前的几次提交:(从指定的提交开始(包含),倒数几次提交)
git format-patch –个数
结束的commitId
git format-patch -4 9d616432
单次提交:
git format-patch -1要打的commitId
git format-patch -1 9d616432
注意
1. git format-patch生成的补丁文件默认从1开始顺序编号,并使用对应提交注释信息中的第一行作为文件名(只取英文字符)。
如果使用了
--numbered-files
选项,则文件名只有编号,不包含提交信息
- 可指定
-o <dir>
指定patch的存放目录
3.2 应用补丁
先检查patch文件:
git apply --stat [文件列表]
git apply --start 0001-jasypt.patch
检查能否应用成功:
git apply --check
文件列表
git apply --check 0001-jasypt.patch
打补丁:
git am --signoff <
文件列表
git apply -s 0001-jasypt.patch
(使用-s或–signoff选项,可以commit信息中加入Signed-off-by信息)
09-Git-补丁patch操作相关推荐
- Git 补丁patch
补丁patch 补丁并不是针对所有代码的修改,只是针对于局部的修改. 在代码的维护中,如果只修改一部分代码,需要将代码完整的克隆下来,可是修改的只是很小的一部分:在这种情况下可以将一些代码的补丁信息发 ...
- git patch操作
获取从FIRSST_COMMIT开始(不包含此次提交)到目前HEAD为止改动的所有文件 git diff --name-only $FIRST_COMMIT | xargs -i cp --pare ...
- Git 补丁— diff 和 patch 使用详解
Git 补丁- diff 和 patch 使用详解 1. diff 和 patch 的区别 2. 生成patch 2.1 git diff 3. git format-patch 3. 应用patch ...
- git 生成patch和使用patch
啰嗦下:发现自己的blog被转载了,不过没有注明出处,有点痛并快乐着的感觉.这里正式申明下:转载请注明出处,感谢.如有商用目的请务必知会本人. 在android大环境下工作,迟早都会接触到git工具, ...
- 不安装git工具应用GIT binary patch
从网上得到一GIT binary patch文件, 却没办法把它恢复出来. google后发现可以用mercurial的hg工具还apply. 以下是在ubuntu下实际操作记录. 1) 先安装mer ...
- Git的Patch功能
UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux ...
- 为特定的提交生成一个git补丁
我需要编写一个脚本来为SHA1提交编号列表创建补丁. 我尝试使用git format-patch <the SHA1> ,但是自SHA1以来,每次提交都会生成一个补丁. 生成几百个补丁后, ...
- git中patch的用法
Git 的 patch 用法是指通过创建一个补丁文件来修改或提交 Git 仓库中的代码. 一个 patch 文件是一种文本文件,它记录了将要在仓库中执行的代码更改.您可以创建补丁文件并将其发送给其他人 ...
- 如何使用git 生成patch 和打入patch
平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用git 生成patch 给到我们,那我们就需要把客户给到patch 打入到我们的project ,基于这样一个场景,我把git ...
- git生成patch和打patch
日常开发与合作过程中,对于code生成patch和打patch(应用patch)成为经常需要做的事情,使用方法(直接给出一些examples): 生成patch git diff > xxx.p ...
最新文章
- 第五届全国大学生计算机系统能力培养大赛 | 赠书
- C# WinForm使用乐器数字接口
- JAVA的思维逻辑_[Java教程]计算机程序的思维逻辑
- 网络编程(part5)--文件读写偏移量及文件描述符
- App Store 排名获取。
- 第九篇 并发(进程和线程)
- MVC阻止用户注入JavaScript代码或者Html标记
- Chrome浏览器新功能 剪贴板多平台共享
- Kubernetes学习总结(17)—— Kubernetes 快速入门需要掌握的知识点总结
- [过年菜谱之]红烧甲鱼
- Objective-C学习笔记(十八)——对象方法和类方法的声明,定义及调用
- 面向对象的系统分析(一)-系统分析方法
- 桑德伯格加州大学伯克利分校2016毕业演讲+我从死亡中学到的东西
- 怎样记账家庭成员收支,搜索查看明细
- mysql 大量写入 优化_MYSQL大批量写入之性能优化
- 感觉自己成长慢,单点突破可以让你成长快10倍
- OA系统请假,出差等流程审批解析
- Python采集群人员数据,记录JavaScript逆向分析过程
- Art-Template模板语法
- 喝一碗孟婆汤nbsp;走一遍奈何桥