GitLab使用BFG清理大文件后推送报错HTTP 524如何解决?
错误原因
HTTP 524属于Cloudflare源站超时错误,触发该问题的核心原因是本次推送单次传输数据量达2.02GiB,超出GitLab基于HTTPS协议的默认传输超时限制,Git默认的HTTP传输缓存大小不足也会加剧该问题。
解决方案
- 第一步:调整Git HTTP传输缓存限制
执行以下命令将HTTP传输缓存调整为3GB,适配当前的推送包大小:
git config --global http.postBuffer 3221225472
- 第二步:优先改用SSH协议推送
HTTPS协议普遍存在大传输量超时限制,将远程仓库地址切换为SSH协议后再推送即可规避Cloudflare的HTTP超时拦截:
# 替换为对应仓库的SSH地址 git remote set-url origin git@gitlab.com:<你的用户名>/<你的仓库名>.git
完成地址替换后重新执行推送命令即可。
- 第三步:若仍推送失败,可分批推送内容
不需要一次性推送全量历史、所有分支和标签,拆分推送降低单次传输量:
# 先推送主分支(主分支名为master则替换为master) git push origin main # 再推送所有其他分支 git push origin --all # 最后推送所有标签 git push origin --tags
- 补充注意事项
推送前先进入GitLab项目的「设置」-「仓库」-「受保护的分支」/「受保护的标签」页面,临时关闭对应分支的保护规则,否则改写后的历史提交会被GitLab拦截,推送完成后再恢复保护规则即可。
推送完成后进入GitLab项目的「管理」-「仓库」-「清理」页面,触发远程仓库GC操作,清理GitLab端留存的旧大文件缓存,完成整个仓库瘦身流程。
内容的提问来源于stack exchange,提问作者user12587364
相关产品推荐
相关产品推荐

