Git生成patch及打patch到源代码
1.每个commit生成1个patch
1.1.创建patch 文件的常用命令行
1.1.1.某次提交(含)之前的几次提交
git format-patch [commitid] -n
n 表示从指定id对应的commit开始算起n个提交。
eg:
git format-patch xxxx -2
1.1.2.某个提交的patch
git format-patch [commitid] -1
eg:
git format-patch commitid -1
1.1.3.某两次提交之间的所有patch
git format-patch [commitid1] [commitid2]
1.1.4.创建diff文件的常用方法
git diff [commitid1] [commitid2] > 文件名称.diff
2.多个commit生成1个patch
2.1.基于当前分支创建一个新的分支
$ git checkout -b dev
Switched to a new branch 'dev' $ git branch
* dev master
2.2.使用git log
查看提交的历史记录日志。
2.3.使用git reset 命令彻底回退到初始化版本
$ git reset --hard 3c5fef11eb9389f3575f8a11dda2deb3b79aa126
HEAD is now at 3c5fef11eb9389f3575f8a11dda2deb3b79aa126 add test.sh
此时执行git log
发现之前的提交历史已经没有了
2.4.使用git merge
$ git merge master --squash
Updating 3c5fef1..9fdd76e
Fast-forward
Squash commit -- not updating HEAD first.c | 7 +++++++ 1 file changed, 7 insertions(+)
--squash选项的含义是
:本地文件内容与不使用该选项的合并结果相同,但是不保留待合并分支上的历史信息,也不提交、不移动HEAD,因此需要一条额外的commit命令。其效果相当于将another分支上的多个commit合并成一个,放在当前分支上,原来的commit历史则没有拿过来。
判断是否使用–squash选项最根本的标准是,待合并分支上的历史是否有意义。
2.5.再编辑一下commit信息
$ git commit -m "add a program--printf hello world"
[dev 50dc073] add a program--printf hello world 1 file changed, 7 insertions(+)
此时dev 分支文件与 master 分支一样。
可以用 git format-patch
制作补丁
2.6.生成patch
$ git format-patch HEAD^
0001-add-a-program-printf-hello-world.patch
3.如何运用生成的patch打回源代码
3.1.检查patch/diff是否能正常打入
git apply --check 【path/to/xxx.patch】
git apply --check 【path/to/xxx.diff】
3.2.打入patch/diff
git apply 【path/to/xxx.patch】
git apply 【path/to/xxx.diff】
或者
git am 【path/to/xxx.patch】
Git生成patch及打patch到源代码相关推荐
- git 生成多个patch_如何用git命令生成Patch和打Patch
在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情.什么是patch?简单来讲,patch中存储的是你对代码的修改,生成patch就是记录 ...
- 如何用git命令生成Patch和打Patch(git format-Patch和git am)
在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情. 什么是patch?简单来讲,patch中存储的是你对代码的修改 什么是生成patch ...
- 使用Git生成patch和应用patch
1. 在git源码目录下执行 git format-patch <old_sha>...<new_sha> -o <patch_dir> 如 git format- ...
- git 生成patch和使用patch
啰嗦下:发现自己的blog被转载了,不过没有注明出处,有点痛并快乐着的感觉.这里正式申明下:转载请注明出处,感谢.如有商用目的请务必知会本人. 在android大环境下工作,迟早都会接触到git工具, ...
- [git 基础] 生成patch 和 打patch 的实例
简洁点啊,我看 网上 很多搞得很复杂的介绍, 然后,最关键,他们 这边版本不仅抄来抄去,而且,还是一个英文 谷歌网页翻译版本. 搞得好复杂, 还没讲 清楚. 1生成Patch 直接就是在GUI上,选一 ...
- git补丁操作:git生成patch和应用patch
一.生成patch 1.拉取代码仓 git clone xxx代码仓地址 2.在clone到本地的代码目录中,例如对README.md文件进行了修改.然后使用 git status 命令查看工作目录和 ...
- 如何使用git 生成patch 和打入patch
平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用git 生成patch 给到我们,那我们就需要把客户给到patch 打入到我们的project ,基于这样一个场景,我把git ...
- git 生成patch和打patch的方法
主要还是为了记住一些命令 git format-patch HEAD^ 成功之后会在当前目录生成一个*.patch文件 打patch的时候需要执行git am xxx.patch 这是patch打成功 ...
- git生成patch和打patch
日常开发与合作过程中,对于code生成patch和打patch(应用patch)成为经常需要做的事情,使用方法(直接给出一些examples): 生成patch git diff > xxx.p ...
- 如何生成Patch及打patch
如何生成patch: 1. 修改代码 2. git add 添加修改的代码 3. git commit 提交代码 4. git format-patch -1生成Patch 如何打patch: 1. ...
最新文章
- 常见linux网络端口对照表(excel),常见子网掩码对照表Excel下载(反、正掩码)-数通工程师的傍身笔记...
- apache php 调优_记一次apache+php调优
- 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan
- pchar,pwidechar,pansichar作为返回参数时内存访问错误
- svg里写入html标签,如何将HTML元素放在内联SVG上
- 前端为什么要使用组件化的思想,通过一个实例来分析
- 修改oracle 的dbname,在oracle 10g上修改dbname的实验
- springcloud使用feign进行远程服务调用
- mysql 主从 均衡_Mysql主从复制
- Hive学习之路 (十九)Hive的数据倾斜
- 剑指offer 09变态跳台阶
- IIS的状态代码(微软文档)
- 数据分析(一):数据的读写(文件、数据库)
- RDP报表工具2.4.2版本
- 2012年5月16日,Google发布“知识图谱(Knowledge Graph)”
- matlab 获取axes图片,matlabaxes显示图片
- 龙果开源支付系统 架构全新升级
- 好用的项目管理工具|选择Tracup的N种理由
- Javaweb(二)制作调查问卷
- bootstrap第三章:基本的BootstrapCSS
热门文章
- [转载]GIF、JPEG 和 PNG的区别在哪里?
- javascript数据结构-链表
- 转载:Pixhawk源码笔记七:姿态控制预览
- javascript 处理HTML元素必须避免使用的一种方法
- 动态游标(例如表名作为参数)以及动态SQL分析
- Direct 3D学习笔记(三)——光照与材质
- AJAX -- 目录
- word2003计算机考试题,[2018职称计算机Word2003考前练习题] 2018年职称计算机考试练习题库...
- oracle signed类型,char、signed char 和 unsigned char 的区别
- MyBatis复习(一):开眼看世界