Gitlab的develop角色的人没有权限无法提交的问题解决方案

本文解决了一个常见问题:团队成员在GitLab中无法向受保护的master分支提交代码。通过调整项目设置中的分支保护规则,允许开发者级别的用户进行提交。

问题

事情是这样的,最近跟几位同事搞一些东西,打算在Gitlab上建一个仓库,然后协同开发。

我建好仓库,将其他几位同事添加进来,角色分配为Develop。

image

 

之后提交初始代码到master分支后,他们用sourceTree拉取代码后进行开发,之后再提交时发现无法提交,提示没有权限

image

如下:

错误提示:

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v origin master:master
Pushing to http://xxx/xxx/xxx_HTML.git

POST git-receive-pack (47642 bytes)

remote: GitLab: You don't have permission[K

To http://xxx/xxx/xxx_HTML.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://xxx/xxx/xxx_HTML.git'

 

解决方案

研究了下Gitlab,最终解决方案是:

在项目的【Setting】中的【Protected branches】可以设置哪些分支是被保护的,默认情况下【master】分支是处于被保护状态下的,develop角色的人是无法提交到master分支的,在下面的【Developers can push】打上钩就可以了。

image

 

还可以对某个分支做单独设定,哪些分支可以被提交

image

(完)

原文地址-http://www.cnblogs.com/xxcanghai/p/5009926.html

转载于:https://www.cnblogs.com/xxcanghai/p/5009926.html

<think>我们已经在之前的回答中提到了如何提交develop_sz0519分支,但这里需要更具体地针对“提交develop_sz0519分支”这一操作进行说明。 提交develop_sz0519分支通常不是直接推送,而是通过合并请求(Pull Request/Merge Request)的方式。以下步骤: 1. 确保你已经在自己的特性分支上完成了开发并提交。 2. 将特性分支推送到远程仓库。 3. 在代码托管平台(如GitLab)上创建从你的特性分支到develop_sz0519分支的合并请求(MR/PR)。 4. 等待评审,评审通过后由有权限合并。 但是,如果问题只是如何将代码推送到develop_sz0519分支(尽管不推荐直接推送),我们也可以给出直接推送的代码,但要注意:在团队协作中,直接推送到主分支通常是禁止的。这里我们按照常规的PR流程来回答。 如果确实需要直接推送(比如有权限且特殊情况),可以使用: git push origin 特性分支:develop_sz0519 但强烈建议使用合并请求。 因此,我们按照常规的PR流程来写操作步骤。</think>### 提交代码到develop_sz0519分支的操作指南 #### 标准操作流程及代码实现 ```bash # 1. 确保当前在开发分支(如feature分支) git checkout feature/your-feature # 2. 更新本地develop_sz0519分支 git fetch origin develop_sz0519 # 3. 将本地开发分支变基到最新develop_sz0519 git rebase origin/develop_sz0519 # 解决可能出现的冲突后继续: git add . git rebase --continue # 4. 推送开发分支到远程 git push origin feature/your-feature --force-with-lease # 5. 创建合并请求(MR) # 在GitLab/GitHub平台操作: # - 源分支: feature/your-feature # - 目标分支: develop_sz0519 # - 添加标题: "功能实现: [功能描述]" # - 添加详细说明: # 实现内容: # 关联任务: # 测试情况: # - 添加评审 # 6. 等待评审通过后合并 ``` #### 替代方案:直接推送(不推荐) ```bash # 仅限特殊情况下使用(需有权限git checkout develop_sz0519 git merge --no-ff feature/your-feature git push origin develop_sz0519 ``` #### 关键操作解释 1. **变基(rebase)而非合并(merge)** - 保持提交历史线性整洁 - 避免多余的合并提交 - `--force-with-lease`确保安全覆盖远程分支 2. **冲突解决策略** - 在变基过程中解决冲突 - 使用`git mergetool`可视化解决 - 完成后继续变基流程 3. **合并请求规范** - 清晰的标题格式:`类型: 描述` - 详细说明包含: - 实现内容 - 关联任务/需求 - 测试验证情况 - 添加相关评审 4. **代码质量保障** - 提交前运行本地测试 - 确保通过CI/CD流水线 - 符合代码规范检查 #### 注意事项 1. **权限要求**: - 通常需要Maintainer权限才能直接推送到受保护分支 - 普通开发者应通过MR流程提交 2. **分支保护**: ```bash # 查看分支保护状态 git remote show origin | grep develop_sz0519 ``` 3. **提交时间**: - 避免在CI/CD流水线运行时提交 - 选择团队低峰时段推送 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值