GitLab的Code Review教程

时间:2024-03-25 20:31:07

一、前言

1、本文主要内容

  • GitLab Code Review机制说明
  • Git Workflow 与 Git Code Review Workflow
  • GitLab Code Review 配置说明
  • GitLab Code Review 流程演示
  • GitLab For IDE 插件介绍(JetBrains等等)

2、GitLab Code Review机制

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

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

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

3、本教程适用环境信息

工具/环境 版本
GitLab GitLab.com、GitLab 社区版皆可
IDE JetBrains(IntelliJ IDEA、PyCharm、PhpStorm、WebStorm、RubyMide、AppCode、CLion、GoLand、DataGrip、Rider、Android Studio等等)

虽然Code Review不一定非要结合IDE来做,但是也不得不感谢JetBrains开发了几乎覆盖所有主流编程语言的IDE

JetBrains Tools目前覆盖的主流语言有:C/C++、C#、DSL、F#、Go、Groovy、Java、JavaScript、TypeScript、Kotlin、Objective-C、PHP、Python、Ruby、Scala、SQL、Swift、VB.NET(排名不分先后)

二、GitLab Code Review 配置

1、Code Review 工作流

  • 通用Git工作流说明

GitLab的Code Review教程

  1. 需求确认后,从master创建develop分支
  2. 开发人员从develop分支创建自己的feature分支进行开发
  3. master分支发生变更,需要从master分支合并到develop分支、可以考虑定期合并一次
  4. feature分支合并到对应的develop分支之前,需要从develop分支合并到feature分支
  5. feature分支合并到对应的develop分支之后,发布到测试环境进行测试
  6. develop分支在测试环境测试通过之后,合并到release分支并发布到预发布环境进行测试
  7. release分支在预发布环境验证通过后,合并到master分支并发布到生产环境进行验证

分支名称约定:

分支类型 名称格式 说明
Master master 有且只有一个
Release release-* *可以是班车发布日期也可以是需求名称缩写,也可以根据需要只用一个release分支
Develop release-* *通常是班车发布日期或者需求名称缩写
Feature feature-{username}-*  
  • Code Review 环节选定

以上述Git工作流为例,开发人员在Feature分支进行开发,开发完成后Merge到Develop分支进行测试。

那么最适合做Code Review就是Feature分支合并到Develop分的环节。

GitLab的Code Review教程

2、GitLab Repository 配置

GitLab仓库相关配置以gitlab.com为例,本篇内容如果没有特别注明,也同样适用于私有化部署的GitLab CE版本

  • GitLab新建仓库&创建分支

GitLab的Code Review教程

仓库地址:https://gitlab.com/ken-io/test

GitLab的Code Review教程

新建分支:
release(from master)
develop-test(from master)、
feature-ken-test(from develop-test)

  • Protected Branches 配置

为了保证必须以Merge的方式变更develop分支、release分支、以及master分支,我们需要对Push以及Merge权限进行限制

菜单:Settings->Repository Settings然后展开Protected Branches选项
https://gitlab.com/ken-io/test/settings/repository

GitLab的Code Review教程

这里,我们限制分支,所有的开发人员对develop分支、release分支、以及master分支均无Push权限,只能以Merge方式合并到对应分支,而且只有Maintainers(Masters)组的用户有Merge权限。

三、GitLab Code Review 示例

  • 变更Feature分支

在线修改feature-ken-test分支README.md文件,为Merge Request提供基础

http://www.cgpwyj.cn/
http://www.peacemind.com.cn/
http://www.tasknet.com.cn/
http://www.metroworld.com.cn/
http://www.cngodo.cn/
http://www.gzrdbp.cn/
http://www.dnapt.cn/
http://www.zgxxyp.cn/
http://www.sjjdvr.cn/
http://www.sujinkeji.cn/
http://www.zsjxbd.cn/
http://www.yesgas.cn/
http://www.quickpass.sh.cn/
http://www.jspcrm.cn/
http://www.yjdwpt.cn/
http://www.henanwulian.cn/
http://www.hhrshh.cn/
http://www.gpgold.cn/
http://www.jingzhuiyou.cn/
http://www.ownbar.cn/
http://www.shtarchao.net.cn/