GitLab仓库体积过大清理后强制推送报错failed to push some refs求助
报错You are not allowed to force push code to a protected branch的核心原因是GitLab默认对master、main等核心分支开启保护规则,禁止强制推送操作,按以下流程处理即可:
步骤1:临时调整分支保护规则
- 登录GitLab对应项目后台,进入「设置」-「仓库」页面
- 定位到「受保护的分支」模块,找到master分支,可选择两种调整方案:
- 方案一:点击「取消保护」,完成推送后再重新开启保护
- 方案二:点击「编辑」,勾选「允许强制推送」选项,同时确认你的账号在允许推送的用户/角色列表中
步骤2:重新执行强制推送操作
回到本地裸仓库目录,依次执行以下命令:
# 强制推送所有分支的清理后历史 git push origin --force 'refs/heads/*' # 强制推送所有标签(避免标签关联的历史大文件未被清理) git push origin --force 'refs/tags/*'
步骤3:触发GitLab远程仓库空间回收
强制推送完成后,远程仓库的实际存储占用不会立刻下降,需要手动触发垃圾回收:
- 回到GitLab项目「设置」-「仓库」页面
- 找到「仓库清理」模块,点击「触发清理」按钮
- 等待系统后台清理完成,通常耗时10-30分钟,清理完成后即可看到仓库存储占用恢复到12M左右的正常水平
步骤4:恢复分支保护规则
确认仓库可正常推送、存储占用正常后,回到「受保护的分支」模块,重新开启master分支的保护规则,关闭「允许强制推送」选项,避免后续出现误操作。
补充说明
- 若你没有项目管理员权限,需联系项目所有者协助调整分支保护规则和触发仓库清理
- 操作前请告知所有项目协作者,同步你清理后的仓库版本,避免后续提交出现历史冲突
内容的提问来源于stack exchange,提问作者user12587364
相关产品推荐
相关产品推荐

