如何基于GitLab做代码评审

版权声明:本文为 ABC实验室 原创文章,版权所有,侵权必究!

导引

大家知道,Gitlab是知名的开源代码管理工具,除了云端代码托管服务外,也可以下载社区版本进行本地搭建。因此大部分研发团队都搭建Gitlab进行代码管理。但其实,gitlab也是支持代码评审流程的。如果我们研发团队如果规模不大(例如10个人左右),完全可以基于gitlab进行代码评审,而无需另外再搭建一趟专业的代码评审工具(例如:Gerrit), 今天我们就简单地介绍下这个话题

当我们建立好敏捷研发体系后,研发工作按部就班的推进中,软件在一个个需求不断迭代过程中代码量也在慢慢攀升,随着代码复杂度不断膨胀,再加上服务上线后,对代码质量控制和变更控制的要求越来越迫切。因此代码评审作为一种代码质量和变更控制机制会被团队提上日程,本文将结合作者实践,给大家分享下如果结合研发搭建的内部Gitlab代码管理系统做快速的Code Review。

流程

一般基于Gitlab的代码评审和递交的典型步骤可以分为如下几个步骤

Fork product upstream (地点:内部Gitlab系统)Git clone product upstream (地点:本地Workspace)Git add forked upstream (地点:本地Workspace)Git pull product upstream (地点:本地Workspace)Dev develop new feature (地点:本地Workspace)Git push forked upstream (地点:本地Workspace)Create merge request (地点:内部Gitlab系统)Code review(地点:内部Gitlab系统)Master merge into product upstream (地点:内部Gitlab系统)详细步骤

前置条件

在进行正式开启code review之前,先完成以下两个前置步骤

1. 已初始化Gitlab项目产线代码库,例如:本示例 example 项目

git@gitlab.geekpi.org:geekpi/example.git

备注:本文中所有地址和样例都是为了演示代码评审过程,真实并不存在。

2. 已配置Gitlab项目代码master 和 release 分支, 进行相应权限控制,要求:develop 通过merge request 的方式,经过code review后递交代码。具体protect权限配置参考如下example项目:

http://gitlab.geekpi.org/geekpi/example/settings/repository

流程举例

使用gitlab进行代码评审,

第1步:Fork product upstream

首先,在gitlab系统上 fork 要提交代码的项目

例如这里演示的项目地址是:http://gitlab.geekpi.org/geekpi/example

第2步,Git clone product upstream

git clone git@gitlab.geekpi.org:geekpi/example.git

第3步,Git add forked upstream

git remote add wangq git@gitlab.geekpi.org:wangq/example.git

第4步,Git pull product upstream (同步产线代码)

git pull origin master

第5步,Dev engineering#change code

#skip details…

 

#add changes into index

git add .

#commit changes into local git repo

git commit -m “demo”

第6步,Git push forked upstreamgit pull wangq master

第7步,Sent merge request

第8步,Code revieweg: http://gitlab.geekpi.org/geekpi/example/merge_requests/1024

第9步,Merge into product upstream

好了,完成以上9大步就大功告成啦!!!

以上,是基于Gitlab在小型开发团队快速代码审核的步骤,希望对你有帮助。

小结

本文主要介绍了在小型敏捷团队,如何基于Gitlab进行代码评审的典型步骤,欢迎继续关注ABC实验室“微研发”系列文章!


留言 点赞 关注 官方公众号

微信扫一扫

—— ABC实验室,让技术更简单

滚动至顶部