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到源代码相关推荐

  1. git 生成多个patch_如何用git命令生成Patch和打Patch

    在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情.什么是patch?简单来讲,patch中存储的是你对代码的修改,生成patch就是记录 ...

  2. 如何用git命令生成Patch和打Patch(git format-Patch和git am)

    在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情. 什么是patch?简单来讲,patch中存储的是你对代码的修改 什么是生成patch ...

  3. 使用Git生成patch和应用patch

    1. 在git源码目录下执行 git format-patch <old_sha>...<new_sha> -o <patch_dir> 如 git format- ...

  4. git 生成patch和使用patch

    啰嗦下:发现自己的blog被转载了,不过没有注明出处,有点痛并快乐着的感觉.这里正式申明下:转载请注明出处,感谢.如有商用目的请务必知会本人. 在android大环境下工作,迟早都会接触到git工具, ...

  5. [git 基础] 生成patch 和 打patch 的实例

    简洁点啊,我看 网上 很多搞得很复杂的介绍, 然后,最关键,他们 这边版本不仅抄来抄去,而且,还是一个英文 谷歌网页翻译版本. 搞得好复杂, 还没讲 清楚. 1生成Patch 直接就是在GUI上,选一 ...

  6. git补丁操作:git生成patch和应用patch

    一.生成patch 1.拉取代码仓 git clone xxx代码仓地址 2.在clone到本地的代码目录中,例如对README.md文件进行了修改.然后使用 git status 命令查看工作目录和 ...

  7. 如何使用git 生成patch 和打入patch

    平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用git 生成patch 给到我们,那我们就需要把客户给到patch 打入到我们的project ,基于这样一个场景,我把git ...

  8. git 生成patch和打patch的方法

    主要还是为了记住一些命令 git format-patch HEAD^ 成功之后会在当前目录生成一个*.patch文件 打patch的时候需要执行git am xxx.patch 这是patch打成功 ...

  9. git生成patch和打patch

    日常开发与合作过程中,对于code生成patch和打patch(应用patch)成为经常需要做的事情,使用方法(直接给出一些examples): 生成patch git diff > xxx.p ...

  10. 如何生成Patch及打patch

    如何生成patch: 1. 修改代码 2. git add 添加修改的代码 3. git commit 提交代码 4. git format-patch -1生成Patch 如何打patch: 1. ...

最新文章

  1. 常见linux网络端口对照表(excel),常见子网掩码对照表Excel下载(反、正掩码)-数通工程师的傍身笔记...
  2. apache php 调优_记一次apache+php调优
  3. 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan
  4. pchar,pwidechar,pansichar作为返回参数时内存访问错误
  5. svg里写入html标签,如何将HTML元素放在内联SVG上
  6. 前端为什么要使用组件化的思想,通过一个实例来分析
  7. 修改oracle 的dbname,在oracle 10g上修改dbname的实验
  8. springcloud使用feign进行远程服务调用
  9. mysql 主从 均衡_Mysql主从复制
  10. Hive学习之路 (十九)Hive的数据倾斜
  11. 剑指offer 09变态跳台阶
  12. IIS的状态代码(微软文档)
  13. 数据分析(一):数据的读写(文件、数据库)
  14. RDP报表工具2.4.2版本
  15. 2012年5月16日,Google发布“知识图谱(Knowledge Graph)”
  16. matlab 获取axes图片,matlabaxes显示图片
  17. 龙果开源支付系统 架构全新升级
  18. 好用的项目管理工具|选择Tracup的N种理由
  19. Javaweb(二)制作调查问卷
  20. bootstrap第三章:基本的BootstrapCSS

热门文章

  1. [转载]GIF、JPEG 和 PNG的区别在哪里?
  2. javascript数据结构-链表
  3. 转载:Pixhawk源码笔记七:姿态控制预览
  4. javascript 处理HTML元素必须避免使用的一种方法
  5. 动态游标(例如表名作为参数)以及动态SQL分析
  6. Direct 3D学习笔记(三)——光照与材质
  7. AJAX -- 目录
  8. word2003计算机考试题,[2018职称计算机Word2003考前练习题] 2018年职称计算机考试练习题库...
  9. oracle signed类型,char、signed char 和 unsigned char 的区别
  10. MyBatis复习(一):开眼看世界