一、前言
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可以在分支合并的时候支持两种方式:
- 在本地将源分支(Source branch)代码合并到目标分支(Target branch)然后Push到目标分支(Target branch)
- 将源分支(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 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 工作流

| 分支类型 | 名称格式 | 说明 |
|---|---|---|
| Master | master | 有且只有一个 |
| Release | release-* | *可以是班车发布日期也可以是需求名称缩写,也可以根据需要只用一个release分支 |
| Develop | develop-* | *通常是班车发布日期或者需求名称缩写 |
| Feature | feature-{username}-* |
- Code Review 环节选定
以上述Git工作流为例,开发人员在Feature分支进行开发,开发完成后Merge到Develop分支进行测试。
那么最适合做Code Review就是Feature分支合并到Develop分的环节。

2、GitLab Repository 配置
GitLab仓库相关配置以gitlab.com为例,本篇内容如果没有特别注明,也同样适用于私有化部署的GitLab CE版本
- GitLab新建仓库&创建分支

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

新建分支:
release(from master)
develop-test(from master)、
feature-ken-test(from develop-test)
- Protected Branches 配置
为了保证必须以Merge的方式变更develop分支、release分支、以及master分支,我们需要对
