使用GitLab做代码版本控制
先决条件:
- 安装 Gitlab
设置为中文
默认情况,GitLab 使用英文界面,使用下述方法设置为中文(只是大部分汉化)
- 点击右上角的头像
- 点击 Sttings
- 下拉找到
Preferred language
- 选择
简体中文
群组
为每个研发团队建立一个群组,如某一组微服务的守护者团队
- 在 GitLab 主页头部导航栏点击,在点击浏览群组
- 点击新建群组,Group 设置为 Internal
- 点击进群组然后点击成员
- 为代码审核和发布权限的人设置
Maintainer
权限,为开发者设置Developer
权限
项目
- 点进某个群组,点击
新建项目
- 设置项目名称
- 创建完成后进入项目
- 右边导航栏点击
设置-仓库
- 展开
Protected Tags
- 输入 * ,并点击 Create wildcard
*
- Allowed to create 设置为
Maintainers
(取决于团队是否允许审核代码的人发布代码)
需要管理员账号设置权限限制,将所有的项目和群组公开级别都禁止为public
扩展设置
如果需要为项目配置持续交付能力,按照下述步骤设置自动的主动推送模式CI触发
- 点击
设置-集成
- 在
Project services
中找到JetBrains TeamCity CI
- 勾选
Active
,设置 TeamCity 的地址,CI的build id,Teamcity的用户名密码
推荐使用TeamCity的管理员账号密码
尽管不设置,不会影响到CI触发,但是设置后会提升 TeamCity 的性能和时效性
参照 在团队中使用TeamCity+Gitlab实现持续交付工作流
开发工作流
创建议题
当需求确认后/或线上出现bug错误,需要开发人员创建对应的议题进行开发和修复
- 进入项目主页
- 在右侧导航栏点击议题
- 点击
New issue
- 填写标题和描述
- Assignee指定给需求开发负责人/开发者
- 设置截止日期、标记(如需求/bug/代码优化)
- 如果需要设置季度里程碑则设置,大部分情况下不需要设置
创建需求分支
- 打开议题
- 点击
Create merge request
旁边的小箭头 - 编辑分支名称,如 feature/xxx 、 hotfix/xxx
- 点击创建合并请求
切换分支开发并审核代码
- 使用Git客户端工具切换到创建好的分支,并持续提交代码
- 项目审核人在对应的合并请求中可以查看提交记录,并在提交记录中查看和评审代码
部署
- 运维使用 refs/merge-requests/{merge-request-id}/head 规格来拉取对应的需求分支
- 将该分支代码编译并发布到测试环境
- 测试验收完成后,项目负责人创建基于当前分支的Tag,如 20190101-UAT
- 运维使用 refs/tags/20190101-UAT 拉取代码并编译发布到预发布环境
- 预发布环境验收完成,项目负责人进入合并请求界面,点击
Merge
- 基于master分支创建Tag,如 20190101-PROD
- 运维使用 refs/tags/20190101-PROD 发布代码到生产环境
注:上述流程中的测试环境和预发布都是需求维度的相互隔离,取决于你的项目背景,如果所有的需求都在同一个仿真环境,需要创建一个中间的临时分支,将2个需求的代码合并到该分支,之后基于临时分支创建Tag