You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git迁移至Azure报错TF402462:推送因大小超5120MB被拒

解决Azure Git迁移时TF402462大小超限问题

1. 定位隐藏的大文件/历史提交

先找出.git文件夹里占用空间最大的对象及其关联的提交和文件,确认是否有遗漏的大文件未被LFS迁移:

# 列出前20个最大的Git对象SHA值
git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -20 | awk '{print$1}' | \
# 关联到具体的提交和文件路径
xargs -I {} git rev-list --objects --all | grep {}

也可以用LFS自带命令检查迁移覆盖情况:

git lfs migrate info --everything

2. 补全LFS迁移范围

如果发现有不在原include列表里的大文件,更新迁移命令加入遗漏的后缀,重新执行迁移:

git lfs migrate import --everything --include="*.zip,*.a,*.tar,*.dll,*.lib,*.xz,*.bz2,*.exe,*.ttf,*.ttc,*.db,*.mp4,*.tgz,*.pdf,*.dcm,*.so,*.pdb,*.msi,*.jar,*.bin,*.sqlites,遗漏的文件后缀"

注意:Azure默认单个LFS文件上限为4GB,若存在超过该大小的文件,需联系管理员调整配额或拆分文件。

3. 彻底清理Git历史残留对象

LFS迁移后,原大文件的历史版本仍会留在.git文件夹中,执行以下命令清理未被引用的对象:

git reflog expire --expire=now --all
git gc --prune=now --aggressive

4. 验证仓库体积

清理后检查仓库实际大小,确认是否降到5GB以下:

git count-objects -vH

若仍超标,检查所有分支和标签,定位未处理的大提交:

# 遍历所有分支,输出各分支体积
git branch -a | while read branch; do echo "$branch: $(git rev-list --objects $branch | git cat-file --batch-check="%(objectsize) %(rest)" | awk '{sum+=$1} END {print sum/1024/1024/1024 " GB"}')"; done

5. 重新推送

确认体积合规后,重新执行推送:

git push --mirror

若仍报错,尝试分分支推送,定位具体触发超限的分支后针对性处理。

备选方案(最后手段)

若上述方法均无效,可新建干净的Azure仓库,仅迁移当前分支的最新代码,手动选择性迁移必要的历史提交(会丢失部分历史)。

内容的提问来源于stack exchange,提问作者Sijith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 19:01:12