1. 程式人生 > >GitLab的Code Review教程

GitLab的Code Review教程

一、前言

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工作流說明

image

  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分的環節。

image

2、GitLab Repository 配置

GitLab倉庫相關配置以gitlab.com為例,本篇內容如果沒有特別註明,也同樣適用於私有化部署的GitLab CE版本

  • GitLab新建倉庫&建立分支

image

image

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

  • Protected Branches 配置

為了保證必須以Merge的方式變更develop分支、release分支、以及master分支,我們需要對Push以及Merge許可權進行限制

image

這裡,我們限制分支,所有的開發人員對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/