zoukankan      html  css  js  c++  java
  • 使用gitlab做git flow及代码审查

    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 master
    Counting 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/master
    To 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 控件,将同时删除该特性分支

  • 相关阅读:
    【流处理】Kafka Stream-Spark Streaming-Storm流式计算框架比较选型
    【大数据】大数据处理-Lambda架构-Kappa架构
    【ElasticSearch】ES5新特性-keyword-text类型-查询区别
    【大数据】大数据-实时统计分析-方案选型
    【Spark】SparkStreaming-流处理-规则动态更新-解决方案
    【ElasticSearch】ElasticSearch-SQL插件
    【ElasticSearch】ElasticSearch-索引优化-自定义索引
    【算法】如何设计--高效的大数据匹配算法
    【Java】Springboot-Quartz-分布式任务调度
    网页提示[Not allowed to load local resource: file://XXXX]错误
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744455.html
Copyright © 2011-2022 走看看