GitLab中如何禁止包括管理员在内的所有人推送至main分支?
GitLab保护分支仍允许管理员推送的原因及解决方法
为什么会出现这种情况?
- GitLab默认给项目管理员配置了绕过保护分支限制的权限,这是内置的权限逻辑,单纯设置保护分支的推送禁止规则,不会对管理员账号生效。
- 可能你在设置保护分支时,误保留了管理员的例外权限,或者没开启针对管理员的额外限制选项。
如何禁止所有管理员向main分支推送?
1. 启用「防止权限提升」设置
进入项目的「设置」→「通用」→「权限和访问控制」,找到并开启“防止权限提升”。这个开关会限制管理员无法绕过保护分支的权限规则,让保护分支的设置对管理员生效。
2. 严格配置保护分支的权限规则
进入项目的「设置」→「仓库」→「保护分支」,找到main分支的配置项:
- 将「允许推送」和「允许合并」的权限,都指定给非管理员的特定用户/用户组(比如仅授权给负责合并的团队成员),不要选择「管理员」或「所有人」。
- 务必勾选「禁止强制推送」,如果有「不允许维护者绕过推送保护」选项也一并勾选。
3. 降级自身的项目角色(非必要但有效)
如果不需要项目管理员的其他权限,可以给自己分配「维护者」或「开发者」角色,而非「项目管理员」。这样保护分支的推送限制会直接作用于你的账号。
4. 群组层面管控(若项目属于群组)
如果项目归属于某个群组,进入群组的「设置」→「权限」,调整群组管理员的权限,限制其对下属项目保护分支的绕过能力,确保群组权限规则覆盖项目级设置。
内容的提问来源于stack exchange,提问作者Frederick Ollinger
相关产品推荐
相关产品推荐

