IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git 迭代开发分支流程规范 -> 正文阅读

[开发工具]git 迭代开发分支流程规范

前言

Git 的名称太响了,相信大家都听说过,鼎鼎大名的同性交友网站 GitHub 就是基于 Git 作为唯一的版本库格式进行托管的平台。本篇不详细介绍 Git 的使用,仅介绍基于 Git 的开发分支流程规范,需要对 Git有一定的了解。

简述

Git 管理中,最重要的一个点就在于分支的管理。在项目开发中,一般涉及到 Git 的相关分支有:

  1. master/main: 主分支,版本正式发布的代码都用这个分支的代码进行编译,常设置为受保护的分支。
  2. dev/develop: 开发分支,开发环境基于此分支进行构建。
  3. feature-*: 开发某个特定功能的分支。
  4. hotfix-/fix-: bug 修复分支。
  5. release-*: 测试平台用。

对于比较小型的项目,参与人较少时,可以仅保留 master, develop 分支。

这里只是一个常规的项目的分支管理,仅作借鉴,具体情况需具体分析。

实际情况

本人目前开发一个项目,代码是由我一个人写的,在进行短期迭代中。

每天就是基于 develop 分支进行代码编写,功能写完后直接提交至 develop 分支进行测试环境的搭建,提交测试,有问题了直接修改提交至 develop 分支,即 develop 分支上的代码就是测试环境所用的代码。

迭代结束,将 develop 分支合并至 master, 并打上正式版的 tag

git分支流

开发流程

  1. develop 分支拉出一个新分支(feature-*/fix-*)。
  2. 开发完成,提交分支至远程仓库。
  3. 创建合并请求(merge requestfeature-* -> develop),请求项目管理人去进行代码审查并合并分支至 develop
  4. 测试通过后,将 develop 分支合并至 master 分支,并打上相应的 tag,一般为正式版本号。

项目每一个版本,都会重复上述流程。

问题 && 解决

迭代过程中(1.1),发现了上一个正式版(1.0)发布,有重大的 bug 需要修复,比较紧急,但是当前 develop 分支更改了很多 1.1 版本的功能,还没有测试完成,不能直接根据当前的 develop 分支进行修改。

还好之前发布 1.0 版本时将当时 develop 分支的代码合并到了 master 分支,现在只需要从 master 分支上拉取代码进行修改,再将修改的内容合并到 master 进行发布即可。这里要注意之后再开发 develop 分支的时候,要先拉取一下 master 的代码进行合并,有冲突就修改,保证下次从 develop 分支再合并到 master 的时候不会有冲突。

总结

  • Git 的流程设计还是很棒的,熟悉了之后是可以方便的进行联合开发工作,建议多花些时间了解。
  • 对于不同规模,不同场景下的项目,Git 的工作流是可以自行更改优化的,最终的目的就是方便、快速、准确的构建项目体系。

本篇主要讲述了一个迭代过程中,突遇线上紧急 bug 需要修复时的 git 工作流的设计,即保证线上的环境用的始终是 master 分支的代码:

  1. master 检出新的分支并进行修改。
  2. 将修改后的代码合并到 master 分支,并编译发布,打 tag
  3. 将修改后的 master 分支合并到当前开发的 develop 分支,解决冲突。
  4. 正常的开发流程。

参考

Git版本管理规范(Git Flow)
产品快速迭代时用Git做分支管理的详细步骤

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:26:35  更:2022-08-19 19:28:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:44:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码