已配置Git LFS但推送触发GitHub文件大小限制问题求助
解决Git LFS已追踪但推送仍触发GitHub 100MB限制的问题
核心诱因
这些无扩展名大文件大概率是在配置LFS追踪前就已被提交到Git仓库的历史记录中,即便后续加了LFS规则,推送时Git仍会检测到历史版本的大文件,触发GitHub的大小限制;另外,通配符追踪规则可能对无扩展名文件的匹配精度不足。
分步解决操作
排查文件历史提交记录
先确认是否存在未被LFS处理的历史版本:git log --all -- Assets/Vuplex/[你的无扩展名大文件名]若输出包含LFS配置前的提交记录,说明历史版本直接存储在Git仓库中,这是问题根源。
重置LFS绑定(无本地文件风险)
该操作仅清除Git缓存,不会删除本地文件,强制让LFS接管目标文件:# 从Git缓存移除文件(保留本地文件) git rm --cached Assets/Vuplex/[你的无扩展名大文件名] # 重新提交追踪规则与文件 git add .gitattributes git add Assets/Vuplex/[你的无扩展名大文件名] git commit -m "Fix LFS tracking for unextended large files"精准配置.gitattributes规则
通配符**对无扩展名文件的匹配可能不稳定,直接给目标文件添加专属规则:
在.gitattributes中追加:Assets/Vuplex/[你的无扩展名大文件名] filter=lfs diff=lfs merge=lfs -text保存后执行
git add .gitattributes && git commit --amend更新提交。清理历史记录中的大文件(谨慎操作)
若步骤2无效,需移除历史提交里的大文件,使用官方推荐的git filter-repo工具:# 清除所有历史提交中该文件的记录 git filter-repo --path Assets/Vuplex/[你的无扩展名大文件名] --invert-paths # 强制推送到远程(会覆盖远程历史,提前告知团队成员同步操作) git push --force origin [你的分支名]预验证推送结果
执行模拟推送确认问题是否解决:git lfs push --dry-run origin [你的分支名]无报错后再执行正式推送。
内容的提问来源于stack exchange,提问作者loops
相关产品推荐
相关产品推荐

