Git 主干分支模型中的CI、CD ( 一)

2023-05-16

分支模型

在这里插入图片描述

主干分支模型如上图,

项目有个主干分支和若干个release分支。

主干分支:

开发人员在主干分支上(通常情况下是master分支)push代码,push代码签需要在本地做rebase并且合并。

如果release分支发现bug,开发人员也在主干分支上直接提交此bug的修复。

Release分支:

每一个版本发布(需要部署到生产环境或者发布给客户)会产生一个Release分支。

Release分支上发现bug后,开发人员修改bug提交到主干分支,CI通过后,Cherry pick到release分支。

主干分支上的CI pipeline

push到主干分之后,触发主干分支的CI pipeline,此处的CI pipeline包括:代码质量检查, 代码静态检查,单元测试,编译打包,接口测试,集成测试,动态安全扫描等。

CI如果失败,则通知相关的开发人员,开发人员修改后,push到主干触发新的CI pipeline。

CI如果成功, 则把编译好的二进制包打上集成标签(Snapshot-commit号),发布到二进制仓库。

在此模型中, 如果提交的非长频繁,则后面的提交的ci pipeline会取消掉前面的ci pipeline, 知道某个提交间隔有足够多的实践完成所有持续集成工作。

Release分支上的CD pipeline

需要发布前,release经理在某个CI成功的节点上创建release分支。

Release分支创建时或者以后Cherry pick后, 执行release分支上的持续部署pipeline:升级之前的二进制包为生产环境,部署到生产环境。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git 主干分支模型中的CI、CD ( 一) 的相关文章

  • 如何仅对最新合并后的提交进行变基?

    考虑以下场景 我从master那里检查了一个分支 我做了一些承诺 我合并了更新的master 我做了更多的承诺 现在我想要从第 4 点开始变基提交 以便从第 2 点开始的提交不受影响 所以如果我最初有 1 2 x x x x x x x m
  • 如何使用 Groovy 获取自上次成功构建以来 Jenkins 的提交信息?

    如何编写自定义 groovy 脚本以轻松操作自上次成功构建以来所有提交的数据 在 gradle maven 步骤之后添加新的构建步骤 gt 执行系统 groovy 脚本 适配代码 import com tikal jenkins plugi
  • 包括来自raw.github.com的js

    我有一个 github com 演示页面 链接到https raw github com master file js https raw github com master file js这样我就不需要总是复制 js文件转移到gh pag
  • 为什么我使用某些 git 命令后终端变得无响应?

    我经常 真的每次 使用该命令后git log我的终端对进一步的输入没有响应 这是在 OSX 上 是否有一个我不知道的命令将使终端再次激活 而不是仅仅退出终端并重新开始 您正在使用一个无需滚动即可显示日志的程序 很可能less 可以通过按q
  • Git 将开发分支与生产版本的主分支合并

    我正在使用 Git 进行代码版本控制 我有一个开发分支 我正在其中进行所有肮脏的开发 每次我向世界发布生产版本时 我都想将其放在我的 master 分支下 问题是 每当我合并开发和 master 时 master 都会收到所有开发历史记录
  • 将存储库移至另一台计算机

    我已将存储库从计算机 A 移至计算机 B 我已验证等待推送的提交仍在 B 上 但整个存储库 每个文件 均未暂存 我不想添加它们并将它们作为提交推送 因为从复制存储库到粘贴它 我没有更改每个文件 当我移动存储库时 它只有等待推送的提交 而不是
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • 为什么 git 无法识别我的本地存储库?

    我刚刚回到一个我已经使用 Git 大约 6 个月的项目 看到了这个 cd d DEVELOP BlenderAe My repo root git status fatal not a git repository or any of th
  • VS2013 - GIT 不工作

    我最近安装了VS2013 每当我尝试使用 GIT 执行任何操作时 我都会在输出窗口中收到以下两条消息 libgit2 引发错误 类别 未知 错误 本机库未提供错误消息 该问题可能主要出现在远程存储库获取中 在克隆远程存储库之前 请打开远程
  • Git:如何维护项目的两个分支并仅合并共享数据?

    假设我有一个项目的两个分支 IMClient MacOS 和 IMClient Windows 它们的代码仅 比方说 一个目录 main 有所不同 所有其他目录都包含与系统无关的代码并且可以互换 有些工作人员在 Windows 版本上工作
  • 合并多个 git 存储库

    假设我有一个看起来像这样的设置 phd code phd figures phd thesis 由于历史原因 这些都有自己的 git 存储库 但我想将它们合并为一个 以稍微简化事情 例如 现在我可能会进行两组更改 并且必须执行类似的操作 c
  • git filter-repo:它可以在特定分支上使用吗?

    我正在读什么git filter repo可以做 因为我想用它做一个小实验 我有这个存储库 我只想从中获取一个目录的历史记录 比如说 master 但我不想为主人工作 我想创建一个新分支 例如filter repo test然后让git f
  • Windows 上的 git 忽略文件名大小写更改 [重复]

    这个问题在这里已经有答案了 我有一个reactjs应用程序 我正在将所有文件名标准化为小写以符合Nodejs 最佳实践 https devcenter heroku com articles node best practices stic
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • Azure git 部署 - 第二个程序集中缺少引用

    我正在尝试将 Bitbucket 部署设置到 Azure 网站 我成功链接了 Bitbucket 和 Azure 但是当我推送到 Bitbucket 时 我在 Azure 站点上收到以下错误 如果我单击 查看日志 它会显示以下编译错误 D
  • 警告:引用名称“xxx”不明确

    我想知道为什么我收到 refname is ambigeous 的警告 这是否意味着名称以该字符串开头的分支不超过两个 但这里没有 Thanks git checkout B03799 warning refname B03799 is a
  • 在 git 中记录前 10 个

    两个问题 如何从头到尾显示 git 中的前 10 个提交 无分行 如何指定提交索引并记录它 显示第二个或第三个 我知道 git 使用父级来链接提交 很容易从头到尾记录提交 喜欢 git log HEAD 10 但我需要从头到尾查询 可以吗
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • git tag --contains 如何工作?

    从几天前开始 我一直在尝试确定在哪个版本 由标签指定 中部署了特定修复 由提交指定 这里的一些帖子发布了这一点git tag contains是收集这些信息的方法 但是选项的文档 https git scm com docs git tag
  • 将主分支的提交合并到另一个分支,但不合并两个分支

    我有 git 存储库和一个主分支 我决定开发新功能 并且创建了新分支 new branch 我已经在 new branch 中创建了一些提交 但我还没有完成新功能 我决定修复 master 分支中的一些错误 因此我切换到 master 分支

随机推荐

  • linux 自平衡AVL树

    简介 仔细观察BST会发现 xff0c 虽然它有良好的 搜索 特性 xff0c 也就是可以利用其节点之前的大小关系 xff0c 很容易地从根节点开始往下走找到我们所要的节点 xff0c 但它无法保证这种搜索所需要的时间长短 xff0c 因为
  • C++职业发展路线

    一 C 43 43 服务器程序员 xff08 流媒体后台 xff0c 游戏后台 xff0c 高性能服务器后台 xff09 精通C 43 43 xff0c STL xff0c Linux等 xff0c 熟悉设计模式 xff1b 熟练掌握一门脚
  • Apache CXF文件目录结构及需要jar包

    原文地址 xff1a http blog 163 com a13151055695 64 126 blog static 112087074201143014443273 文件目录结构及相关文件的详细说明 xff1a bin xff08 目
  • 浅析SAX,DOM,JAXP,JDOM与DOM4J之间的关系

    众所周知 xff0c SAX与DOM是JAVA中两大核心XML解析API类库 xff0c 而JAXP JDOM与DOM4J都是基于这两大核心API而衍生出来的 今日兴起看了看相关资料 xff0c 在这里总结总结 SAX与DOM 首先需要说明
  • StAX-基于流的拉式XML解析

    最近在学习webservice时 xff0c 发现很多框架 xff0c 技术都在使用StAX作为底层XML解析工具 xff0c 于是今天看了看资料 xff0c 简单学习了下 xff0c 在这里做个总结 简介 StAX xff0c 全称 St
  • 那些支持我学习与工作的良师益友

    2011大学毕业后 xff0c 成为一名JAVA开发人员从事开发工作只有区区3年不到的时间 回想高中时 xff0c 学校计算机课开设Flash课程 xff0c 第一次接触Flash的我 xff0c 便对计算机技术产生了浓厚的兴趣 xff0c
  • Apache HttpClient4.2入门

    介绍 HttpClient 是 Apache Jakarta Common 下的子项目 xff0c 用来提供高效的 最新的 功能丰富的支持 HTTP 协议的客户端编程工具包 xff0c 并且它支持 HTTP 协议最新的版本和建议 HttpC
  • JMX “javax.management.NotCompliantMBeanException” 异常解决

    原文章 xff1a http lovespss blog 51cto com 1907593 616403 昨天同事在JBoss中部署MBean时一直报错 xff1a Caused by javax management NotCompli
  • webservice-WSDL结构与各元素解析

    承接上一遍webservice初识 xff0c 这篇文章将着重于WSDL wsdl协议说明http www w3 org TR wsdl 结构 现在开始说说wsdl的结构以及各个元素的意义 从下面这张图可以看出wsdl中各元素是存在嵌套的关
  • alsa amixer 使用介绍

    alsa utils 提供的工具中 xff0c arecord 可以用来录音 xff0c aplay 可以用来播放 xff0c amixer 可以用来控制音量 增益等 amixer controls numid 61 34 iface 61
  • C# 自定义控件制作和使用实例

    C 自定义用户控件 xiongxuanwen 上篇 xff1a 控件制作 本例是制作一个简单的自定义控件 xff0c 然后用一个简单的测试程序 xff0c 对于初学者来说 xff0c 本例子比较简单 xff0c 只能起到抛石引玉的效果 我也
  • 二叉树搜索性能比较

    二叉树搜索性能分析 我想测试一下不同类型的二叉树搜索数据的性能是什么样的 众所周知 xff0c 二叉树有以下几种类型 xff1a BSTAVL红黑树 对于搜索数据 xff0c 具体来讲 xff0c 当树保持平衡时 xff0c 其搜索时间复杂
  • Kubernetes系统架构

    控制单元 xff1a kube apiserver xff1a 所有客户端通过kube apiserver访问cluster中的各种服务 xff0c 资源以及应用 etcd xff1a 键值对数据库 xff0c 存放所有的集群数据 kube
  • Kubernetes的网络模型(K8S集群中的三个网络)

    一个K8S的集群中至少有三个网络 xff1a 1 集群节点所在的网络 xff0c 这个网络就是你的主机所在的网络 xff0c 通常情况下是你的网络基础设施提供 如果你的node处于不同的网段 xff0c 那么你需要保证路由可达 如上图中的
  • K8S中的容器(Container)之间的网络接口

    Kubernetes集群中当一个容器启动时 xff0c 容器里面会启动一个以太网络接口 xff08 eth0 xff0c 分配的是Pod网络所用的IP地址 xff0c 通过一个虚拟以太网对 xff08 veth pair xff0c 连接到
  • K8S中Pod之间互相访问,外部访问如何访问Pod的网络连接原理

    Pod中的Container启动时 xff0c 会分配一个Pod网段中的IP地址 xff08 network cidr xff09 xff0c 但是这个IP地址是浮动的 xff08 ephemeral xff09 xff0c Pod重启 x
  • kubectl proxy 是什么

    大家都知道 xff0c 在K8S集群中的业务从外部默认是不能访问的 xff0c 正式环境中 xff0c 我们需要通过service xff0c 然后通过Node的ip地址和Loadbanlencer来访问 但是还有一些简单的方式 xff0c
  • kubectl port-forward命令访问集群中业务

    使用kubectl proxy可以访问Pod中的业务 xff0c 但是URL要加上namespace xff0c service等 xff0c 比较长 kubectl还提供了一个功能 xff0c 就是kubectl port forward
  • K8S服务发现(kube-dns) : CoreDNS

    K8S中 xff0c Pod如果想也另外一个Pod通信 xff0c 通常不会直接基础此Pod的IP xff08 动态的 xff09 xff0c 也不会记住此Pod形成的Service的IP xff08 相对比较稳定 xff0c 但也是动态的
  • Git 主干分支模型中的CI、CD ( 一)

    分支模型 主干分支模型如上图 xff0c 项目有个主干分支和若干个release分支 主干分支 xff1a 开发人员在主干分支上 xff08 通常情况下是master分支 xff09 push代码 xff0c push代码签需要在本地做re