使用Github LFS管理Unity项目仍无法推送仓库如何解决
问题原因及解决步骤
核心问题
- .gitignore规则未生效:你配置的.gitignore已经明确忽略
/[Ll]ibrary/目录,但报错中仍出现该目录下的大文件,说明你在配置.gitignore之前就已经将该目录文件提交到了本地Git历史,新增的gitignore规则不会自动回溯处理已提交的内容。 - LFS追踪规则覆盖不全:你当前的.gitattributes中没有包含报错提到的
.so格式文件,这类超过100MB的二进制文件没有被LFS接管,直接走普通Git推送触发了GitHub的文件大小限制。
解决步骤
- 第一步:清理本地Git缓存中被gitignore匹配的冗余文件
执行以下命令不会删除本地实体文件,仅从Git提交记录中移除不需要追踪的内容:
完成后重新提交变更:git rm -r --cached .git add . git commit -m "修复:应用.gitignore规则,清理冗余提交文件" - 第二步:补全LFS追踪规则
在.gitattributes文件中新增.so格式的LFS追踪配置,如有其他未覆盖的大体积二进制格式也可同步补充:*.so filter=lfs diff=lfs merge=lfs -text - 第三步:回溯迁移历史提交中的大文件
此前已提交到本地Git历史的大文件不会自动转为LFS管理,执行以下命令完成全量迁移:
如需同时处理多种格式,可在include参数中用逗号分隔,例如git lfs migrate import --include="*.so" --everything--include="*.so,*.bin,*.aab" - 第四步:推送至远程仓库
完成上述操作后执行推送即可:
如果推送提示分支历史不匹配,确认本地内容正确且无其他协作者在同一分支提交的前提下,可添加git push-f参数强制推送。
内容的提问来源于stack exchange,提问作者SoftError
相关产品推荐
相关产品推荐

