Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从零开始devops-GitLab协作流程初稿

从零开始devops-GitLab协作流程初稿

原创
作者头像
于欣轩
修改于 2020-02-10 07:10:39
修改于 2020-02-10 07:10:39
1.9K0
举报
文章被收录于专栏:与技术与技术

GitLab协作流程初稿

工作


准备工作

创建Groups组

PS:后续会将次流程在立项中自动进行。

一个项目立项,开始写代码建议建立一个项目组。

并设置权限

在设置界面创建Groups小组

Gitlab中的组和项目有三种访问权限

Private:只有组成员才能看到

Internal:只要登录的用户就能看到

Public:所有人都能看到

为project添加members

添加member

分配权限

进入Members选项卡添加成员到Groups组,添加信息包括(成员邮箱、权限、到期时间)权限分为五种,分别代表五种不同权限。 

Guest:可以创建issue、发表评论,不能读写版本库 

Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限 

Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限 

Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限 

Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限。

group,member与权限

如果你的group下面有多个project,比如有project1,project2,project3,而你的project1邀请了A和B,project2邀请了B和C,那么members A在自己的gitlab主页就可以看到project1,B可以看到project1和project2,C只能看到project2。如下图所示

GitLab Code Review机制

GitLab可以在分支合并的时候支持两种方式:

由Gitlab合并 (推荐)

注意是分支(new branch)不是fork

将源分支(Source branch)Push到远端,然后在GitLab指定目标分支(Target branch)发起Merge Request,对目标分支(Target branch)拥有Push权限的用户执行Merge操作,完成合并。

也就是说,使用GitLab进行Code Review就是在分支合并环节发起Merge Request,然后Code Review完成后将代码合并到目标分支。

优点:适合团队水平有差异的情况,如和外援共同开发,可以及时发现冲突,适合多人开发,可以用gitlab界面回滚,方便可视化的回滚与分析问题

缺点:有些情况会需要等待review确认

PS:gitlab ee支持多人reivew,gitlab ce支持单人review,后续会通过gitlab+gerrit解决多人reivew。

本地合并(不推荐)

在本地将源分支(Source branch)代码合并到目标分支(Target branch)然后Push到目标分支(Target branch)。

优点:适合单人开发或精英团队开发

缺点:多人开发冲突频繁,阻塞开发,不适合团队中有不熟悉git的开发的人,会有误操作,误删除分支错误合并的风险,适合团队人少且熟悉git。

主要操作步骤

设置保护分支

将master,develop,release设置为保护分支。

分支名称约定:

建立dev分支

需求确认后,从master创建develop分支

根据需求拆分分支

开发人员从develop分支创建自己的feature分支进行开发。

新建分支命名规则

人名(汉语拼音)/版本号/功能名称

例如:wangyuheng/1.0.1/makeLoginPanel

为什么这么命名?

git客户端可以折叠,多人开发方便查找自己的分支,可以尝试不这么命名会导致多人开发查找非常不方便。

为什么要根据功能进行拆分?

方便代码进行回滚和cherrypick,不要把多个功能写在一个分支不方便回滚代码定位问题。

建议建立功能分支后立即创建mr,并标记wip,当完成feature后移除WIP。

Source branch选择:wangyuheng/1.0.1/makeLoginPanel(功能分支)

Target branch选择:develop

feature合并前需要合并dev

feature分支合并到对应的develop分支之前,需要从develop分支合并到feature分支。相关人员进行代码reivew,点击accept触发merge,merge后触发pipleline自动打包。

定期合并master

master分支发生变更,需要从master分支合并到develop分支、可以考虑定期合并一次。

在提测节点合并到dev

feature分支合并到对应的develop分支之后,发布到测试环境进行测试。

提测后建立release分支

develop分支在测试环境测试通过之后,合并到release分支并发布到预发布环境进行测试。由测试确认提测成功。bug修改完毕以release进行发版。

新建release规则

人名release_版本号_日期

例如:release_1.0.1_20191230

为什么这么命名?

方便区分

修改bug分支命名规则

人名(汉语拼音)/版本号/问题_bugfix

例如:wangyuheng/1.0.1/问题_bugfix

为什么这么命名,git客户端可以折叠,多人开发方便查找自己的分支,可以尝试不这么命名会导致多人开发查找非常不方便。并标记bugfix。

发版本后, 在release分支改线上bug

release分支在预发布环境验证通过后,release分支合并到master分支并发布到生产环境。发版本后谨慎修改代码避免线上问题。发版后的bug需要多方确认谨慎修改。

线上bug,修改bug分支命名规则

人名(汉语拼音)/版本号/问题_hotfix

例如:wangyuheng/1.0.1/问题_hotfix

为什么这么命名,git客户端可以折叠,多人开发方便查找自己的分支,可以尝试不这么命名会导致多人开发查找非常不方便。并标记hotfix。

release禁止合入大规模改动,release代码合入应比dev严格,由架构师确认。

强烈建议使用版本号

版本号有利于回溯与二分查找版本之间的bug,也方便持续集成持续部署

强烈建议规范合并分支流程

可以避免线上问题和回溯问题

参考

https://www.jianshu.com/p/8f392c57d72b?utm_source=oschina-app

https://www.cnblogs.com/ken-io/p/gitlab-code-review-tutorial.html

https://www.cnblogs.com/qianqiu-1026/p/8534897.html

http://www.fwhyy.com/2018/06/Use-the-Merge-Request-working-mode-in-GitLab-in-the-team/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git开发流程
在Git版本控制系统中,合理的分支命名规范对于项目管理至关重要。它不仅有助于团队成员理解每个分支的用途,还能在版本回退和问题追踪时提供便利。
用户4547779
2024/10/30
1090
Git开发流程
开发流程与版本管理规范(上)
如非特殊说明,所有产品的版本号将遵循 主版本.次版本.BuildNumber 的规则。
用户1348170
2021/07/09
2.8K0
基于GitLab的Code Review教程
也就是说,使用GitLab进行Code Review就是在分支合并环节发起Merge Request,然后Code Review完成后将代码合并到目标分支。
KenTalk
2018/09/11
7.5K0
基于GitLab的Code Review教程
高效团队的gitlab flow最佳实践
当前git是大部分开发团队的首选版本管理工具,一个好的流程规范可以让大家有效地合作,像流水线一样有条不紊地进行团队协作。
JadePeng
2021/02/04
4.3K0
高效团队的gitlab flow最佳实践
Git 分支管理策略汇总
最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?
AlwaysBeta
2022/11/11
1.3K0
Git 分支管理策略汇总
Git实战(五)| 让工作更高效,搞定Git的分支管理
上一篇讲到Git的分支管理实操,在线合并和本地合并都进行了实操。毕竟:光说不练是假把式。而只练不整理,只能是傻把式了。分支管理到底如何进行管理呢?
霍格沃兹测试学院
2020/01/08
6700
Git实战(五)| 让工作更高效,搞定Git的分支管理
2020-09_Git 使用规范流程
在开发过程中,遵循一个合理、清晰的GIT使用流程,是至关重要的。否则,每个人都提交一堆杂乱无章的commit,会增加后期协调和维护的复杂度。
Java架构师必看
2021/03/22
1.1K0
2020-09_Git 使用规范流程
猫头鹰的深夜翻译:开发者必须了解的分支发布模型
想要深入了解Git和中心化代码版本管理系统的优缺点比较,可以在网上自行查询,这个话题一直争论不休。作为一个开发者,我更倾向于使用Git。Git确实改变了开发者对代码合并和分支管理的认识。作为一个使用过传统的CVS工具的人,合并/开分支是一个比较恐怖的行为,迫不得已才执行一次。
眯眯眼的猫头鹰
2019/11/08
5690
猫头鹰的深夜翻译:开发者必须了解的分支发布模型
三种常见的git workflow
github flow一般配合没有定制化的持续发布场景使用。github flow发布的都是master上版本,要么你选择一个不包含新特性的、相对稳定的版本;要么你选择一个包含更多功能的,相对不稳定的版本。
windealli
2021/12/10
2K1
开发规范一:Git Flow + Gitlab 工作流
分支说明 main 分支 发布分支。 包含最新稳定版本,每个版本都是该分支上的一个tag。 长期分支。 保护分支,非Maintainer成员不能直接提交,只能从其他分支合并。 develop 分支 主开发分支。 新功能或 bug 修复分支都从这里拉取和提合并请求。 长期分支。 保护分支,非Maintainer成员不能直接提交,只能从其他分支合并。 建议设置为仓库默认分支 feature 分支 新功能特性分支。 从develop分支拉取,开
Yuyy
2022/09/21
1.9K0
开发规范一:Git Flow + Gitlab 工作流
GitLab快速入门教程
之前公司代码的管理不统一,一部分人用SVN,一部分人用Git,对于习惯了使用Linux或者Mac命令行的人来说,Git的操作更方便和快捷,和小伙伴商量了一下把整个代码管理工具切换成了Git,GitHub如果不是开源项目的话是需要付费使用,所以选择使用GitLab,由于公司没有网络安全专家,对公司的网络边界以及代码库进行扫描,如果扫描到邮箱,暴力破解后,可能就会获取代码,所以采用在自己内网搭建GitLab服务的方式,在讲正文之前,先来说说Git和SVN的区别。
zls365
2021/04/23
1.7K0
GitLab快速入门教程
Git Workflow简介
Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践。Git Flow是一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具。
mantou
2019/02/13
8100
Git Workflow简介
基于 git flow + gitlab 协作开发:01
很久以来,我一直在寻找一个适合小型团队独立项目的 git 协同工作流。主要原因是实际工作中很难在繁忙的迭代中兼顾真正的协同和代码质量管理。造成的现象就是在一个以月维度发布版本的产品中出现各种各样的分支、hotfix。到底哪个是主线,哪个分支修复了哪些问题、不同的分支是否与主线同步更新都是未知数。如果不叫一个从开始就参与到项目中的人给你做介绍,很难去做维护。
我与梦想有个约会
2020/08/31
1.4K0
开发中Git问题小结
一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中心。实际项目中,有很多文件都不需要版本管理的,比如*.class、.classpath、.project等。.gitignore文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。 下面我们看看常用的规则:
麦克劳林
2018/09/11
5700
开发中Git问题小结
持续交付之如何选型代码分支策略?
高效的持续交付体系,必定需要一个合适的代码分支策略。采用不同的代码分支策略,意味着实施不同的代码集成与发布流程,这会影响整个研发团队每日的协作方式,因此研发团队通常需要很认真地选择自己的策略。
高楼Zee
2021/03/16
2.1K0
Git多人协作开发流程分支管理方案
代码库应该有一个、且仅有一个主分支:master。所有提供给用户使用的正式版本,都在这个主分支上发布。
前端进阶之旅
2022/01/04
1.4K0
Git多人协作开发流程分支管理方案
基于 git flow + gitlab 协作开发:02 解决问题
上一篇文章中我们提到了在一个周维度或者月维度发布产品的小型协作项目中,会遇到各类协作上的问题,随着发布的越来越紧凑,问题也就越来越突出。本文主要对上一篇文章中提到的问题解决方案做细化,让大家可以清楚的知道如何通过合理的 git 工作流来解决这些问题,让原来发布时的手忙脚乱不再出现。通过 git flow 我们可以对项目做一个分支模型管理:
我与梦想有个约会
2021/03/13
1.1K0
前端小微团队的Gitlab实践
首先要说的是分支管理,分支管理是git工作流的基础,好的分支设计有助于规范开发流程,也是CI/CD的基础。
程序员白彬
2020/07/10
1.6K0
前端小微团队的Gitlab实践
带领前端小伙伴重温「Git Flow Workflow」
关于Git Flow 工作流,我想已经是老生常谈的话题了,但是今天我不得不来重温一下 Git Flow 工作流。当我看的代码厂库的时候,我已经开始怀疑人生。乱七八糟的分支,五花八门的提交信息,各种各样的分支名称,没有 Develop 分支,没有 Release,也没有 Hotfix。因此我想我应该好好温习一遍 Git Flow 工作流,来改善一下厂库现状。
拾贰
2019/08/22
5860
gitflow 开发流程学习(第一部分)
gitflow 流程是非常专业而且标准的 git 处理流程,因为要学习其核心思想和应用,故有此文章系列,本文章系列会分为两部分,第一部分学习基本的内容和基础的流程,第二部分会学习其他流程和 hotfix,release 和 tag 之类的高级用法。 一、gitflow 的分支学习 项目中长期存在的两个分支: master:主分支,负责记录上线版本的迭代,该分支代码与线上代码是完全一致的。 develop:开发分支,该分支记录相对稳定的版本,所有的 feature 分支和 bugfix 分支都从该分支创建。
前端正义联盟
2018/06/20
1.2K0
相关推荐
Git开发流程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档