运行以下内容:
我在GitLab中创建了一个项目,并将我的代码推送到那里没有问题。我是项目业主,并担任“大师”的角色。与项目。
分公司' master'被设置为受保护的分支'默认情况下,只允许具有角色' Master'合并并推进该分支。
现在我直接在主人那里做了一些小改动,并没有保证单独的分支。
但是,当我提交并推送这些更改时,我收到以下错误:
D:\Projects\MyProject>git push
Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 731 bytes | 0 bytes/s, done.
Total 8 (delta 7), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To https://git.****.**/*****/****.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.****.**/*****/****.git'
不确定我做错了什么。我不是Git的专家,但这被认为是一个强大的推动力#?由于所有用户都阻止了该用户,包括具有角色' master'的用户。如果是这样,我应该如何更改主分支?
它必须与“受保护的分支”有关。如果我删除它,我可以推得很好。但是,由于受保护的分支'还可以防止删除分支及其历史记录,我希望将其保留到位。
答案 0 :(得分:1)
根据GitLab问题跟踪器,这是与Git 2.11和最新GitLab版本的已知不兼容。
https://gitlab.com/gitlab-org/gitlab-ce/issues/25301
从源代码暂时降级到Git 2.10应解决问题,直到GitLab的未来版本中内置了对Git 2.11+的适当支持。
答案 1 :(得分:0)
启用组级默认分支保护
以前,将实例级别的默认分支保护设置向下转换为项目是令人困惑的,因为在某些情况下,这会带来不直观的体验:开发人员无法将新的提交推送到他们可以创建的项目中。
这使组织很难在减轻风险和允许所有开发人员按部就班地访问项目之间取得平衡,因为解决方法需要将其提升为维护者。
现在,可以在组级别设置默认分支保护,以为管理员和组所有者提供更好的灵活性。
结合使用默认分支保护和默认项目创建设置,组织可以找到自主权和控制权的正确组合,例如使用自定义默认分支保护并仅允许维护者创建新项目。
这将使开发人员可以将新的提交(而不是强制推送或删除分支)推送到新项目,但允许维护者控制项目的创建。可以对需要更严格控制的组织禁用默认分支保护的组级配置。
通过禁用默认的分支保护的组级别设置,维护人员可以对开发人员的访问和权限应用更严格的控制。
请参见documentation和issue。