Git合并分支后本地领先远程37个提交被拒绝推送如何解决
报错根因
你收到的you are not allowed to upload merges错误和本地操作无关,是远程仓库的分支保护策略限制导致。目前主流Git托管平台(GitHub、GitLab、Gitee等)的分支保护配置均支持禁止直接向目标分支推送合并提交,要求所有代码变更必须通过PR(拉取请求)/MR(合并请求)的审核流程完成合并,避免未经校验的合并代码直接进入核心分支。
正确操作步骤
你不需要修改本地Git配置,按以下流程操作即可完成代码合并:
- 首先回退本地
remote-branch分支到和远程一致的状态,清除本地的多余合并提交:# 确认当前处于remote-branch分支 git reset --hard origin/remote-branch - 切换到
remote-branch-test分支,重新解决冲突后将修改推送到远程测试分支:git checkout remote-branch-test # 重新执行合并、解决冲突后提交 git merge remote-branch git add . git commit -m "fix: 解决与remote-branch的合并冲突" git push origin remote-branch-test - 进入Git托管平台的对应仓库页面,为
remote-branch-test分支创建指向remote-branch的PR/MR,审核通过后点击平台的合并按钮完成代码合并即可。
特殊场景排查
如果团队规则允许直接推送合并提交到remote-branch,可联系仓库管理员确认两项配置:
remote-branch的分支保护规则中是否关闭了「禁止直接推送合并提交」的限制- 你的账号是否拥有
remote-branch的写入和合并权限
内容的提问来源于stack exchange,提问作者Shekhar Kumar
相关产品推荐
相关产品推荐

