13、代码审核:
http://www.360doc.com/content/16/0920/17/1073512_592302821.shtml 1、分配成员角色; 2、锁定受保护的分支; 3、发起合并请求; 4、审查合并请求;
5、处理合并请求;
1、分配成员角色:
首先来了解下,Git 中的五种角色:
Guest:访客,貌似没有什么权限;Reporter:可以使用 git@172.18.2.121:test_group_001/top_proj_002.git 拉代码,但是不能push 到仓库的默认分支;Developer:项目的开发人员,能够推送和删除没有保护的分支,刚创建的分支 默认 都是没有保护的;Master:项目管理人员,可以对没有保护和有保护的所有分支进行操作,几乎拥有所有权限;Owner:系统管理员,拥有所有权限;
我们需要做的是,为项目成员分配恰当的角色,以限制其权限。
每一种角色所拥有的权限都不同,如下图:
2、锁定受保护的分支:
在对 Git 不熟悉的时候,时常苦恼于各个分支不受约束,任何开发人员都可以向任何分支直接推送任何提交,各种未经审查的代码、花样百出的 Bug 就这样流窜在预发布分支上。
其实我们可以通过 GitLab 的受保护分支(Protected Branches)功能 解决该问题,该功能可用于:
- **阻止 Master 角色以外的开发人员 **直接向此类分支推送代码,保持稳定分支的安全性;
- 在向受保护分支合并代码前,强制进行代码审查。
接下来我们就使用这项功能,锁定我们的受保护分支——主分支
master
和预发布分支
release-*
,以阻止 Developer 直接向这两类分支中推送代码:
锁定后,Developer 推送代码将会报错:
$ git push origin masterCounting objects: 4, done.Delta compression using up to 4 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 283 bytes | 0 bytes/s, done.Total 3 (delta 1), reused 1 (delta 0)remote: GitLab: You are not allowed to access master!remote: error: hook declined to update refs/heads/masterTo git@website:project.git ! [remote rejected] master -> master (hook declined)error: failed to push some refs to 'git@website:project.git'
3、发起合并请求:
第一步,新建合并请求;注意,对于 Developer 而言:
From
是你的特性分支feature-*
;To
只可能是预发布分支release-*
;Title
和Description
要填写恰当的分支描述;Assign to
是该项目的 Master。
4、审查合并请求: 第二步,Master 收到合并请求后,进行代码审查。逐一查看
Commits
一栏提交的内容即可,对于需要改进的代码,可以直接在该行添加注释,非常方便。
如果对整个请求还有疑问的地方,还可以通过底部的
Discussion
功能进行线上讨论。
5、处理合并请求: 第三步,针对审查结果进行相应处理:
1.关闭: 对于完全不合格的垃圾代码、或者废弃的特性分支的合并请求,Master 点击右上角的
Close
按钮即可。合并请求将被关闭,相当于扔进回收站。
2.改进: 对于分支内需改进的代码,Developer 直接修正并推送即可,合并请求将会自动包含最新的推送提交。
3.接受: Master 审查无误后,可以接受该次合并请求。点击 **
Accept Merge Request
按钮 将自动合并分支,勾选
Remove source-branch
控件,将同时删除该特性分支**。
版权归原作者 美丽的格桑花888 所有, 如有侵权,请联系我们删除。