在生产开发协作的实际过程中,出于内部控制的考量,往往需要自定义拥有某些关键分支推送(push)和合并(merge)权限的人群,此时就可以采用【分支状态】中的【保护分支】功能。
被设为保护分支之后,该分支只允许对应的【保护分支规则】内选中的仓库成员对此分支进行合并/推送操作,如下图所示:
在Gitee企业版中,企业内的“超级管理员”、“企业拥有者”、“管理员”,因为默认具备“仓库-全局数据-合并Pull Request”和“仓库-全局数据-推送代码”两项权限,依然可以对保护分支进行合并/推送操作,而无需遵从【保护分支规则】。想限制相关人员的,请查看成员角色权限配置说明 。
以下是设置保护分支的三种方式:
方式一
分支创建后,从【分支】页面选中分支,修改【分支状态】为【保护分支】。
默认的保护分支规则是,只有仓库管理员才可以向此分支推送(push)代码,,也只有仓库管理员才可以合并向此分支提出的Pull Request。如果您想自定义规则,可以从该分支状态选择下拉框的【保护分支】右侧设置按钮,进入该保护规则的编辑页面。
方式二
如果只创建了保护规则,没有手动设置对应分支的状态为【保护分支】的话,该分支依然是【常规分支】。
方式三
在页面中新建、命令行推送符合已有保护分支规则命名的分支。
【保护分支规则】只影响状态是【保护分支】的分支,【常规分支】和【只读分支】都不影响。
一个分支同时只能有一条规则生效,以最早生效的那条规则为优先。在分支本身生效的规则变动(不再符合生效条件)或被删除后,分支会按创建时间的先后顺序自动匹配符合生效条件的规则。