git使用patch进行补丁操作

文章目录

  • 前言
  • 一、format-patch/am生成和应用补丁
    • 1、生成
    • 2、应用
  • 二、patch文件解读

前言

在软件开发中,代码协作和版本管理是至关重要的。Git 是一个流行的分布式版本控制系统,它提供了各种功能来简化团队合作和代码管理。但是如何给已有项目打补丁,如何在线上运行的项目做增量修改是运维以及开发者需要掌握的一个比较高级的git技术,本文将介绍如何使用 Git 的补丁功能进行高效的代码协作。

一、format-patch/am生成和应用补丁

1、生成

假设在一个分支(这里的分支是hzl_patch3)上进行了修改。这里在file1.py上新增了一段代码在这里插入图片描述
在这里插入图片描述
并且进行了提交
在这里插入图片描述
使用format-patch命令生成补丁文件
format-patch命令是对指定版本范围内每次commit的修改生成对应的patch文件
他的文档如下:

-n, --numbered        use [PATCH n/m] even with a single patch
-N, --no-numbered     use [PATCH] even with multiple patches
-s, --signoff         add Signed-off-by:
--stdout              指定输出位置,如所有patch输出到一个文件
--cover-letter        generate a cover letter
--numbered-files      文件名只有编号,不包含提交信息
--suffix <sfx>        指定patch文件名后缀,默认'.patch',比较常用的还有`.diff`
--start-number <n>    start numbering patches at <n> instead of 1
-v, --reroll-count <n> mark the series as Nth re-roll
--rfc                 Use [RFC PATCH] instead of [PATCH]
--cover-from-description <cover-from-description-mode> generate parts of a cover letter based on a branch's description
--subject-prefix <prefix> Use [<prefix>] instead of [PATCH]
-o, --output-directory <dir> 指定patch的存放目录
-k, --keep-subject    don't strip/add [PATCH]
--no-binary           don't output binary diffs
--zero-commit         output all-zero hash in From header
--ignore-if-in-upstream don't include a patch matching a commit upstream
-p, --no-stat         show patch format instead of default (patch + stat)

首先通过log 找到对应的cmmitID、。在这里插入图片描述
使用format-patch命令生成patch文件。在这里插入图片描述
把深沉出来的patch文件保存,或者发给别的工程师

2、应用

在在另一个分子上面进行am补丁应用
在这里插入图片描述
然后进行应用就可以看到修改的部分了在这里插入图片描述在这里插入图片描述

二、patch文件解读

我们来解读一下这个patch文件。其实是一个邮件文件。

From db5e68b55569ec3f224b34886239137d4be784a0 Mon Sep 17 00:00:00 2001
From: UPUPLiang <12822475+upupliang@user.noreply.gitee.com>
Date: Tue, 14 Nov 2023 19:09:10 +0800
Subject: [PATCH] fix bug6

---
 file1.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/file1.py b/file1.py
index f7f043b..e0a5ca7 100644
--- a/file1.py
+++ b/file1.py
@@ -5,3 +5,4 @@ print("fix bug3")
 print("fix bug3")
 print("fix bug4")
 print("fix bug5")
+print("fix bug6")
-- 
2.41.0.windows.1


  • From db5e68b55569ec3f224b34886239137d4be784a0 Mon Sep 17 00:00:00 2001: 这是 Patch 文件的头部信息,标识了该 Patch 的提交信息。
  • From: UPUPLiang <12822475+upupliang@user.noreply.gitee.com>: 这是提交者的信息,包括提交者的名称和邮箱地址。
  • Date: Tue, 14 Nov 2023 19:09:10 +0800: 这是提交的日期和时间。
  • Subject: [PATCH] fix bug6: 这是提交的主题,表示这个 Patch 是为了修复 bug6。
  • --- a/file1.py: 这表示下面的行是原始文件 file1.py 的内容。
  • +++ b/file1.py: 这表示下面的行是经过更改后的文件 file1.py 的内容。
  • @@ -5,3 +5,4 @@: 这是一个上下文行,表示下面的更改发生在原始文件的第 5 行到第 8 行之间。
  • print("fix bug6"): 这是具体的更改部分,表示在第 8 行插入了一行代码 print("fix bug6")

综上所述,这个 Patch 文件表示对 file1.py 文件进行了一处更改,在第 8 行插入了代码 print("fix bug6"),用于修复 bug6。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/146064.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理:大而快——层次化存储

原文链接www.xiaocr.fun/index.php/2023/11/14/计算机组成原理大而快-层次化存储/ 引言 关于两种局部性 时间局部性&#xff1a;如果某个数据被访问&#xff0c;那么在不久的将来它可能再次被访问空间局部性&#xff1a;如果某个数据项被访问&#xff0c;与它相邻的数据项可…

onlyoffice 进阶开发 二次开发 连接器(connector)开发

阅读须知&#xff1a;本文针对有对word/excel进行js操作的需求 本次改造基于V7.3.3进行&#xff0c;已经去除&#xff1a;连接器(connector)限制 可以自由调用Api.xxx()、connector.executeMethod()、connector.callCommand() 已经自行改造过docker更新进入仓库。 小伙伴们…

python 爬虫之requests 库以及相关函数的详细介绍

get 函数 当你使用 requests.get 函数时&#xff0c;你可以按照以下步骤来发起一个 GET 请求&#xff1a; 导入 requests 模块&#xff1a; 在你的 Python 脚本或程序中&#xff0c;首先导入 requests 模块。 import requests指定目标 URL&#xff1a; 设置你要请求的目标 URL…

ACM练习——第二天

今天又是一天课&#xff0c;满课&#xff0c;很累哈&#xff0c;计组真的挺难的&#xff0c;但是多学学还是可以学明白。行吧&#xff0c;继续进入今天的ACM练习&#xff0c;现阶段都是主要练习Java到C的语言过渡。 因为今天的题目多半都是昨天的延伸&#xff0c;我就不提供Jav…

Python的函数定义中99%的人会遇到的一个坑

列表是一种经常使用的数据类型。在函数的定义中&#xff0c;常常会使用列表作为参数。 比如&#xff0c;要测试一个接口的数据&#xff0c;接口返回的数据格式如下&#xff1a; {"code": "20000", "data": ["孙悟空","李白&quo…

【C语言学习】24 - strcpy()函数

文章目录 1 函数原型2 参数3 返回值4 使用说明5 示例5.1 示例1 1 函数原型 strcpy()&#xff1a;将str指向的字符串拷贝至dest&#xff0c;函数原型如下&#xff1a; char *strcpy(char *dest, const char *src);2 参数 strcpy()函数有两个参数src和dest&#xff1a; 参数s…

Python基础入门----使用Pipenv工具时产生的Pipfile和Pipfile.lock文件有什么区别以及有什么作用

文章目录 PipfilePipfile.lock实操示例当我们使用 Pipenv 工具进行 Python 项目的依赖管理时,会遇到两个重要的文件:Pipfile 和 Pipfile.lock。这两个文件在项目中扮演着不同但又相互补充的角色。接下来,我将详细介绍这两个文件的区别和作用,并提供一些具体的使用示例。 P…

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于入侵杂草优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

C 语言多维数组

C 语言多维数组 在本教程中&#xff0c;您将借助示例学习使用多维数组&#xff08;二维和三维数组&#xff09;。 在C语言编程中&#xff0c;您可以创建一个数组数组。这些数组称为多维数组。例如&#xff0c; float x[3][4];这x是二维&#xff08;2d&#xff09;数组。该数…

二分法中的两个模板

在acwing的算法基础课中&#xff0c;yxc给出了二分的两个模板&#xff0c;这里举有序数组查找某个数的例子来说明这两个模板。 模板1&#xff1a; 当我们将区间[l, r]划分成[l, mid]和[mid 1, r]时&#xff0c;其更新操作是r mid或者l mid 1;&#xff0c;计算mid时不需要加…

单链表经典OJ题(三)

目录 1、反转链表 2、合并两个有序链表 3、链表的中间结点 4、环形链表的约瑟夫问题 5、移除链表元素 6、移除元素 1、反转链表 206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 翻转链表的实质就是更改当前结点的前驱结点和后继结点 假设原链表为:1->2->…

深入理解强化学习——马尔可夫决策过程:随机过程和马尔可夫性质

分类目录&#xff1a;《深入理解强化学习》总目录 下图介绍了强化学习里面智能体与环境之间的交互&#xff0c;智能体得到环境的状态后&#xff0c;它会采取动作&#xff0c;并把这个采取的动作返还给环境。环境得到智能体的动作后&#xff0c;它会进入下一个状态&#xff0c;把…

【电子通识】USB端口颜色编码标识

不知道你有没有发现 USB 口有不同的颜色&#xff0c;黑色、蓝色、紫色、红色、黄色等等&#xff0c;你知道不同颜色的 USB 口各代表什么意思吗&#xff1f; 这些颜色不是USB规范所要求的&#xff0c;设备制造商之间也不一致。例如&#xff0c;Intel使用橙色表示充电端口&#…

Spring Cloud学习(八)【RabbitMQ 服务异步通讯】

文章目录 初识 MQ同步通讯异步通讯MQ 常见框架 RabbitMQ 快速入门RabbitMQ 单机部署RabbitMQ概述常见消息模型 SpringAMQPSimpleQueue 模型WorkQueue 模型发布订阅模型发布订阅-Fanout Exchange发布订阅-DirectExchange发布订阅-TopicExchange消息转换器 初识 MQ 同步通讯 同步…

007 Linux fork()函数

前言 本文将会以提问的形式展开向你介绍fork函数 文章重点 关于fork函数&#xff0c;本文重点在于解决以下疑问 疑问一&#xff1a; 为什么fork之前的代码只有父进程执行&#xff0c;然而fork之后的代码父子进程都要执行 疑问二&#xff1a; 1、既然fork之后父子进程会执行一…

微信小程序:页面跳转传参问题

今天后端大兄弟突然拿着一个反编译过来的小程序源码&#xff0c;问能不能改。我心里直道好家伙&#xff0c;WebGIS开发的岗位&#xff0c;前端的活儿真是一个不少。大致看了看有几处是调整页面和接口修改的&#xff0c;源码部分和Vue项目语法十分相像&#xff0c;就临阵磨枪&am…

【java面试题】Integer对象输出结果是?

/** Copyright (c) 2006, 2023, webrx.cn All rights reserved.**/package cn.webrx;/*** <p>Project: wxbili2mp4 - Test* <p>Powered by webrx On 2023-11-14 20:28:46* <p>描述&#xff1a;<p>** author webrx [webrx126.com]* version 1.0* since …

2.3.5 交换机的VRRP技术

实验2.3.5 交换机的VRRP技术 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.交换机的基本配置 六、任务验收七、任务小结 一、任务描述 某公司的网络核心层原来采用一台三层交换机&#xff0c;随着网络应用的日益增多&#xff0c;对网络的可靠性也提出了越来…

生信分析|基因组倍型鉴定

简介 基因组倍型通常指一个生物体细胞中染色体的组合&#xff0c;即染色体数目的倍数。在生物学中&#xff0c;主要有两种类型的基因组倍型&#xff1a;单倍体和多倍体。 「单倍体&#xff08;Haploid&#xff09;&#xff1a;」 单倍体生物体的细胞中只包含每一对同源染色体的…

凸包的学习之路

学习视频选择的是&#xff1a;清华大学邓俊辉教授的《计算几何》课程 关于我为什么学习 凸包&#xff08;Convex Hull&#xff09;&#xff1f; ——在学习过程中遇到了凸包问题&#xff0c;凸包在CV领域的基础性&#xff0c;使我觉得深入了解凸包是必要的。此外&#xff0c;…