今天推送代码到 GitLab 远程 master 分支上,然后提交失败了,提示如下:
! [remote rejected] master -> master (pre-receive hook declined)
究其原因,就是用户权限不足,无法 push 代码到 master 分支上。只要将用户角色设置成 Master、Owner 等含有 master 分支操作的权限即可。
但应根据自身实际情况而定,是赋予可修改 master 分支权限,还是交由 Leader 等含有 master 分支处理权限的其他人处理?
这个是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目,包含 3 种:
开源项目和组设置的是 Internal。
在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些操作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等角色
GitLab 官方文档关于 Permissions(link:https://docs.gitlab.com/ce/user/permissions.html) 有一个很详细的说明。
Guest - 访客
可以创建 issue、发表评论,不能读写版本库。
Reporter - 报告者
可以理解为测试员、产品经理等,一般负责提交 issue 等
可以克隆代码,不能提交,QA、PM 可以赋予这个权限。
Developer - 开发者
可以克隆代码、开发、提交、push,RD 可以赋予这个权限。
Master - 主人
可以创建项目、添加 tag、保护分支、添加项目成员、编辑项目,核心 RD 负责人可以赋予这个权限。
Owner - 拥有者
可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组 Leader 可以赋予这个权限。
Maintainer - 维护者
权限与 Owner 差不多,但无删除项目等权限。

