Git 工作流程

刘邦
• 阅读 1129

团队多人协作,必须要有一个适合团队的,规范的工作流程

协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去。"工作流程"在英语里,叫做"workflow"或者"flow",原意是水流,比喻项目像水流那样,顺畅、自然地向前流动,不会发生冲击、对撞、甚至漩涡。

市面上主要有3中工作流Git flow,Github flow,Gitlab flow。这里我们采用Git flow工作流

下面具体介绍该工作流

主要特点

首先,项目存在两个长期分支

  • 主分支master
  • 开发分支develop
    前者用于存放对外发布的版本,任何时候在这个分支拿到的,都是稳定的分布版;后者用于日常开发,存放最新的开发版。
    Git 工作流程(两个长期分支)

其次,项目存在三种短期分支

  • 功能分支(feature branch)
  • 补丁分支(hotfix branch)
  • 预发分支(release branch)(可用个人开发分支替代)

日常开发

  • 创建个人开发分支,基于远程 dev 创建

    git checkout -b feature-a origin/dev
  • 同步 dev 分支

    git rebase origin/dev
  • 完成开发,commit,push 远程。
  • 发起合入 dev 分支请求(使用 gitlab 新建合并请求)
  • 管理者接受合并请求,代码合并进入 dev 分支。

预发布版本测试、正式发版

  • 创建预发布分支(如:release-1.0.0),基于 dev 分支创建预发布分支
  • 测试预发布分支代码
  • 测试通过后,合入 master 分支
  • 正式发布版本,打版本 tag

bug 修复

预发布版本 bug 修复

  • 创建bug分支,基于预发布版本分支创建。(假设预发布版本分支为:release-1.0.0)

    git checkout -b 15-release-1.0.0-bug-a origin/release-1.0.0
    建议 bug 分支命名规范:与 issue 的名字保持一致,并且以issue的编号起首。如"15-release-1.0.0-bug-a "。
    开发完成后,在提交说明里面,可以写上"fixes #14"或者"closes #67"。Gitlab 规定,只要commit message里面有下面这些动词 + 编号,就会关闭对应的issue。
    如未创建 issue,去掉头部的编号。
  • 完成修复 bug ,本地提交(commit),push 远程。
  • 发起合入预发布版本分支(使用 gitlab 新建合并请求)。
  • 发起合入 dev 分支(使用 gitlab 新建合并请求)。

    注意:bug 修复完成后,同时需要合入 dev 分支
  • 管理者接受合并请求,代码合入目标分支。

master(线上) bug 修复

流程同 "预发布版本 bug 修复" 流程

区别在于

  • 创建分支是基于 master 分支创建
  • 分支名为 15-master-1.0.0-bug-a
  • bug 修复完成后,发起合入 master 分支和 dev 分支。

参考:
Git 工作流程
Git分支管理策略

点赞
收藏
评论区
推荐文章
liam liam
2年前
浅谈 2022 前端工作流中全流程多层次的四款测试工具
在应届生找工作的时候,我们经常会见到一条招聘要求:要求实习经历。或者有实习经历者优先。为什么大部分公司在招聘时,都要求你必须有实习经历?商业项目与个人项目不同,一段实习经历,能够熟悉公司中成熟的规范化的整个开发流程。在大学中,当你编写网站时,你大概率编写的
Wesley13 Wesley13
3年前
java activiti5 在线web流程设计器整合视频教程 SSM和独立部署
本视频为activiti工作流的web流程设计器整合视频教程整合Acitiviti在线流程设计器(ActivitiModeler5.21.0官方流程设计器)本视频共讲了两种整合方式1\.流程设计器和其它工作流项目分开部署的方式2\.流程设计器和SSM框架项目整合在一起的方式视频大小1.13GB~
Wesley13 Wesley13
3年前
activiti工作流的web流程设计器整合视频教程 SSM和独立部署
本视频为activiti工作流的web流程设计器整合视频教程整合Acitiviti在线流程设计器(ActivitiModeler5.21.0官方流程设计器)本视频共讲了两种整合方式1\.流程设计器和其它工作流项目分开部署的方式2\.流程设计器和SSM框架项目整合在一起的方式视频大小1.13GB~
Wesley13 Wesley13
3年前
activiti web流程设计器 工作流的 整合视频教程 SSM和独立部署
本视频为activiti工作流的web流程设计器整合视频教程整合Acitiviti在线流程设计器(ActivitiModeler5.21.0官方流程设计器)本视频共讲了两种整合方式1\.流程设计器和其它工作流项目分开部署的方式2\.流程设计器和SSM框架项目整合在一起的方式视频大小1.13GB~
Wesley13 Wesley13
3年前
Activiti架构分析及源码详解
Activiti架构分析及源码详解\TOC\引言工作流引擎,应用于解决流程审批和流程编排方面等问题,有效的提供了扩展性的支撑。而目前来说,工作流领域也有了相对通行化的标准规范,也就是BPMN2.0。支持这个规范的开源引擎主要有:Activiti,flowable,Jbpm4等。本文着重对Activit
Wesley13 Wesley13
3年前
Activiti工作流的定义部署和执行
工作流引擎  个人觉得直接理解工作流引擎概念有点难度,我们可以先通过了解工作流引擎的职责再反过来理解工作流引擎,工作流引擎一般都做两件事情:1.定义流程,也就是给我们提供某种规范来定义规则,以及如何定义一个流程的这种规范,同事我们可以根据工作流引擎提供的相关概念来定义更为复杂的流程,这就是工作流引擎做的第一件事叫做定义流程。2
Wesley13 Wesley13
3年前
Java面试总结(面试流程及核心面试题)
Java面试流程及核心面试题面试整体流程 1.1简单的自我介绍      我是xxxx,工作xxx年.我先后在xxxx公司、yyyy公司工作。先后做个xxxx项目、yyyy项目。 1.2你简单介绍一下xxxx项目    为了解决xxxx问题,开发了一套xxxx系统,该系统主要有那些部分组成。简单介绍
Wesley13 Wesley13
3年前
APP项目合作流程规范
整体流程说明:MRD评审:磨刀不误砍柴工1、MRD对于问题细节分支和细节描述希望能够更多覆盖,避免开发过程中的反复确认和信息不对称。2、MRD评审,RD&QA都要带着问题去评审,这样也可以更好帮助产品规避没有想到的边界问题。开发物料管理:清晰才能简单可依赖PM:负责上传最新MRD文档、交互文档、最终视觉稿、切图标注到项
Stella981 Stella981
3年前
Git 多人协作开发的过程
Git可以完成两件事情:1\.版本控制2.多人协作开发如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发。如果有多个开发人员共同开发一个项目,如何进行协作的呢。Git提供了一个非常好的解决方案多人协作开发。1.多人协作原理典型的做法是,首先创建一个git服务器,被多个人所
小万哥 小万哥
1年前
Git 版本控制系统的完整指南
什么是Git?Git是一个流行的版本控制系统。它是由LinusTorvalds于2005年创建的,自那时以来由JunioHamano维护。它用于:跟踪代码更改跟踪谁做出了更改编写协作Git做什么?使用仓库管理项目克隆项目以在本地副本上工作使用暂存和提交来控
刚背兽 刚背兽
5个月前
Tower for Mac:Git 版本控制的终极工具
TowerforMac是一款专为开发者设计的强大Git客户端,旨在简化版本控制流程,提升团队协作效率。无论是个人开发者还是大型团队,Tower都能提供直观的操作界面和强大的功能支持,让Git管理变得轻松高效。核心功能:直观界面:Tower提供简洁直观的用户