git push 报错 pre-receive hook declined
今天推送代码到 GitLab 远程 master
分支上,然后提交失败了,提示如下:
! [remote rejected] master -> master (pre-receive hook declined)
究其原因,就是用户权限不足,无法 push 代码到 master
分支上。只要将用户角色设置成 Master、Owner 等含有 master
分支操作的权限即可。
但应根据自身实际情况而定,是赋予可修改
master
分支权限,还是交由 Leader 等含有master
分支处理权限的其他人处理?
关于 GitLab 访问权限
GitLab 访问权限 - Visibility Level
这个是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目,包含 3 种:
- Private - 私有,只有属于该项目成员才有看到
- Internal - 内部,用 GitLab 账号的人都看到
- Public - 公开,任何人可以看到
开源项目和组设置的是 Internal。
行为权限
在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些操作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等角色
GitLab 定义了以下几个角色
GitLab 官方文档关于 Permissions 有一个很详细的说明。
Guest - 访客
可以创建 issue、发表评论,不能读写版本库。
Reporter - 报告者
可以理解为测试员、产品经理等,一般负责提交 issue 等
可以克隆代码,不能提交,QA、PM 可以赋予这个权限。
Developer - 开发者
可以克隆代码、开发、提交、push,RD 可以赋予这个权限。
Master - 主人
可以创建项目、添加 tag、保护分支、添加项目成员、编辑项目,核心 RD 负责人可以赋予这个权限。
Owner - 拥有者
可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组 Leader 可以赋予这个权限。
Maintainer - 维护者
权限与 Owner 差不多,但无删除项目等权限。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论