当前位置: 首页 > news >正文

给大家推荐一套 git 工作流

一套规范的git工作流能让每个开发者都有自己的本地的完整项目副本。隔离的环境使得每个开发都的工作独立于项目的其它修改。 —— 他们可以在自己的本地仓库中添加提交,完全无视上游的开发,直到需要的时候。

一、分支划分及作用

  • master —— 主分支,已经发布过生产环境的代码
  • release —— 发行分支,需要发行到生产环境的代码
  • test —— 测试分支,需要发行到测试环境的代码提
  • feature —— 特性分支,也可以通俗的理解为版本分支,项目的本次迭代代码
  • dev —— 开发分支,开发者开发时的分支
  • fix —— 修复分支,用于紧急处理项目线上问题 和 临时短平快需求
  • join —— 联调分支,用于在不干扰测试的情况下与后端联调接口时使用,一般情况下可能用不着。管理办法和测试分支保持一致

二、分支管理流程

为更好的描述管理流程,请先查看下方的流程示意图

流程示意图补充说明:

  1. 文案 001 表示 序号,一般用数字来表示,依次递增即可;
  2. 文案 HeLang 表示 开发者姓名,也可以使用首字母简称(HL);
  3. 在新建开发分支(dev-001-Helang) 时,开发分支 的 序号 是继承 特性分支(feature-001) 的 序号 的,并且是根据多个开发者创建多个不同的开发分支;
  4. 有序号的发行分支(release-001) 是在 特性分支合并前创建的,用于合并主分支和当前迭代分支的代码,在这个环节解决与主分支的冲突;
  5. 修复分支(fix-002)是在出现线上问题和临时的短平快需求时使用的,修改问题后合并发行分支发布后直接合并到主分支;
  6. 从实际情况来讲 任何分支都是可以直接 合并 或 创建 测试(test) 分支的;
  7. 发行分支(release)一般只会从 主分支 和 有序号的发行分支上创建;
  8. 代码审核一般在 开发分支 向 特性分支 合并时提交,任何向 主分支 合并的代码都需要审核;

三、 git commit 日志规范

有了好的管理流程后,配合优秀的日志规范就更完美啦。

格式:类型(模块):具体事项,一般类型为功能新增(feat),修改和删除(fix)。。类型搞太多(增删改全来一遍)意义不大。

示例

// 新增代码
git commit -m 'feat(登录):接口联调'

// 修改代码
git commit -m 'fix(注册):已注册用户跳转逻辑完善'

// 删除代码
git commit -m 'feat(首页):删除已废弃的相关静态资源'

// 如果功能过于复杂也可以套用改格式使用
git commiit -m 'fix(个人中心-帐号安全):退出异常问题修复'
git commiit -m 'fix(个人中心):退出异常问题修复'

作者:黄河爱浪

本文原创,著作权归作者所有,转载请注明原链接及出处

相关文章:

  • JWT解密和python反序列化之[CISCN2019 华北赛区 Day1 Web2]ikun
  • 《用Go语言自制解释器》之第3章 求值
  • C++ - 8月31日 - 约瑟夫环问题
  • C++ 模板泛型编程
  • Retrofit原理解析(二)
  • 数据结构与算法 -- 子序列问题
  • python中namedtuple函数用法详解
  • C++设计模式---模板方法模式
  • 数据结构和算法——绪论
  • 最小生成树算法的相关变形题
  • Android中常用的几种容器视图的使用
  • 随手记面试录
  • VMware软件下载安装以及在VMware中安装Centos-stream
  • JCL入门教程
  • 5.6如何寻找最长回文子串
  • [LeetCode] Wiggle Sort
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • CentOS 7 防火墙操作
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • flask接收请求并推入栈
  • hadoop集群管理系统搭建规划说明
  • Java 23种设计模式 之单例模式 7种实现方式
  • javascript面向对象之创建对象
  • php ci框架整合银盛支付
  • Redis的resp协议
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 当SetTimeout遇到了字符串
  • 欢迎参加第二届中国游戏开发者大会
  • 精彩代码 vue.js
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 十年未变!安全,谁之责?(下)
  • 优化 Vue 项目编译文件大小
  • 由插件封装引出的一丢丢思考
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 【云吞铺子】性能抖动剖析(二)
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #FPGA(基础知识)
  • #HarmonyOS:Web组件的使用
  • $$$$GB2312-80区位编码表$$$$
  • (NSDate) 时间 (time )比较
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)平衡树
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 4.0中的泛型协变和反变
  • .Net CoreRabbitMQ消息存储可靠机制
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET简谈设计模式之(单件模式)
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .Net组件程序设计之线程、并发管理(一)