Git-工作流

news/2024/12/22 2:09:32/

前言

  • 一、工作流概述
  • 二、Git flow
    • 1.主要流程
    • 2.优缺点
    • 3.适用场景
  • 三、Github flow
    • 1.主要流程
    • 2.优缺点
    • 3.适用场景
  • 四、Gitlab flow
    • 1.主要流程
    • 2.优缺点
    • 3.适用场景
  • 总结
      • 参考

一、工作流概述

开发人员通过Git可以记录和追踪代码的变化,包括添加、删除和修改文件。如果是单人进行开发,可以很方便进行研发和发布等工作。但是实际工作中都是团队协作进行多功能点并行开发,还涉及测试环境、集成环境和生产环境的打包发布,以及线上bug修复等,如何将以上工作进行协调,这就需要一套完整的代码管理和版本控制的流程规范。
而在团队中使用Git进行协作开发时,各个成员遵循的一套代码管理和版本控制的规范流程就是Git工作流。根据实际工作经验,被广泛使用的Git工作流为:Git flow、Github flow、Gitlab flow。

二、Git flow

在这里插入图片描述

1.主要流程

  • master是最稳定分支,其中代码是最稳定的、其中代码已经验证充分并且已发布到生产环境,可以通过master跟踪生产环境版本发布情况。
  • develop是主开发分支,feature分支和release分支都是从此分支拉取。可以通过develop跟踪开发过程中的版本情况。
  • feature:功能分支,主要是需要开发新功能从develop进行拉取,开发完成后合并回develop分支。
  • elease:预发布分支,主要是为发布做准备,从develop拉取然后在预发环境进行验证,用来修复一些bug。
  • hotfix:热修复分支,当生产环境遇到需要紧急修复的情况,从master进行拉取进行修复并发布。

2.优缺点

优点:规则明确详细、每步操作都有详细的操作规范、适合各种复杂情况
缺点:规则复杂、学习成本高、分支维护复杂

3.适用场景

  • 团队成员多、项目数量多
  • 基于版本发布的开发模式、不适合持续发布模式
  • 支持多版本并行开发模式

三、Github flow

相对于git flow复杂的分支管理模式,github flow的整个工作流相对简化了很多。
在这里插入图片描述

1.主要流程

  • main/master 分支:用于发布正式版本的分支,只有待发布的代码才会被合并到该分支。
  • feature分支:用于开发新功能的分支。每个功能都应该在一个单独的 feature 分支上进行开发,开发完成后再合并到 main/master 分支。

2.优缺点

  • 优点:分支管理简单明了
  • 缺点:不适合复杂情况

3.适用场景

  • 小团队、项目数量少
  • 敏捷开发、持续迭代和集成

四、Gitlab flow

1.主要流程

  • main/master 分支:用于发布正式版本的分支。 与GitHub Flow 中的主干分支类似,只有可发布的代码会被合并到该分支。
  • feature 分支:用于开发新功能的分支。每个功能都应该在一个单独的 feature 分支上进行开发,开发完成后再合并到main/master 分支。
  • bugfix 分支:用于修复 Bug 的分支。当出现 Bug 时,开发者应该从 main/master分支上创建一个 bugfix 分支进行修复,并将修复后的代码合并到 main/master 分支。
  • hotfix分支:用于紧急修复问题的分支。该分支是在 master 分支上针对生产环境的紧急修复,Bug 修复或安全漏洞修复等。

2.优缺点

  • 优点:具有较为简单的分支管理策略
  • 缺点:不适合复杂情况

3.适用场景

  • 适合中小团队和企业的敏捷开发环境

总结

git工作流主要是团队在协作开发中需要遵守的一套代码管理和版本控制的流程规范,广泛应用的Git Flow、GitHub Flow、GitLab Flow工作流都有其合适的场景和特点。需要根据项目的具体需求和团队规模选择合适的工作流。

参考

1.git flow工作流:https://nvie.com/posts/a-successful-git-branching-model/


http://www.ppmy.cn/news/1215293.html

相关文章

深度学习模型加载和测试

深度学习模型加载和测试 加载和测试深度学习模型通常涉及以下步骤:模型加载、准备输入数据、进行推理或预测,以及解释结果。 我将使用 TensorFlow 和 Keras 作为示例框架进行说明。请注意,不同的深度学习框架可能有略微不同的API和步骤。 1…

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

利用ANSYS Electronics Desktop,可在综合全面、易于使用的设计平台中集成严格的电磁场分析和系统电路仿真。按需求解器技术让您能集成电磁场仿真器和电路及系统级仿真,以探索完整的系统性能。 HFSS(High Frequency Structure Simulator&#…

能够定时发送朋友圈的软件

此款软件提供便捷的网页端登录方式,让您轻松管理多个账号,实现多账号聚合管理,只需一个界面即可解决所有问题。 朋友圈内容编辑功能强大,让您在输入框内输入文本内容,点击表情图标选择表情,还能通过“”图标…

ubuntu操作系统的docker更换存储目录

前言 要将Docker的存储目录更改为/home/docker,你需要进行以下步骤: 目录 前言1、停止Docker服务2、创建新的存储目录3、编辑Docker配置文件4、启动Docker服务5、验证更改 1、停止Docker服务 首先停止Docker守护进程,可以使用以下命令&…

2023最新ACL大模型论文分类汇总(有代码的)

1 大模型文化道德 Knowledge of cultural moral norms in large language models url:https://aclanthology.org/2023.acl-long.26/code:https://github.com/AidaRamezani/cultural_inference 2 长文本推理 Open-ended Long Text Generation via Mask…

kubectl 常用命令搜集 —— 筑梦之路

集群信息&#xff1a; 1. 显示 Kubernetes 版本&#xff1a;kubectl version 2. 显示集群信息&#xff1a;kubectl cluster-info 3. 列出集群中的所有节点&#xff1a;kubectl get nodes 4. 查看一个具体的节点详情&#xff1a;kubectl describe node <node-name> 5.…

postswigger 靶场(CSRF)攻略-- 2.令牌验证

靶场地址&#xff1a; What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy (portswigger.net)https://portswigger.net/web-security/csrf 令牌(token)验证取决于请求方法 题目中已告知易受攻击的是电子邮件的更改功能&#xff0…

2311d9月会议

DLF2023年9月月度会议摘要 Robert Robert,在DConf上做了一些初步的JSON5工作.他还更新了Bugzilla到GitHub的迁移脚本.他使用了"隐藏"API,现在脚本要快得多. 除此外,他在DScanner上做了一些小事,并等待JanJurzitza(Webfreak)合并它们.他指出,沃尔特曾要求他写一篇演…