使用Git LFS推送大型TXT文件至GitHub时出错,寻求解决方案
解决Git LFS推送大型文本文件到GitHub失败的问题
嘿,我之前也踩过Git LFS推送的坑,结合你的操作流程,给你几个实用的排查和解决方向:
先确认Git LFS在仓库中完成初始化
虽然git lfs track通常会自动触发仓库初始化,但你用的v2.3.4是比较老的版本,偶尔会出现初始化不彻底的情况。手动执行一下:git lfs init执行完后可以打开
.git/config文件,确认里面出现了[lfs]相关的配置项,这说明LFS的钩子已经正确安装。验证文件是否被LFS正确追踪
运行下面的命令,看看你的三个大型txt文件是否出现在输出列表里:git lfs ls-files如果没显示,大概率是追踪规则没生效:
- 先确认
.gitattributes已经被正确提交:用git show HEAD:.gitattributes查看当前commit里的文件内容,确保*.txt filter=lfs diff=lfs merge=lfs -text这行存在。 - 要是文件在子目录里,试试把追踪规则改成
**/*.txt,这样能匹配所有层级的txt文件,之后重新执行git add .gitattributes并提交。
- 先确认
升级Git LFS到最新稳定版
v2.3.4是2018年的老版本了,和GitHub当前的LFS服务兼容性可能存在问题。建议卸载旧版本,安装最新的稳定版,然后重新走一遍追踪、提交、推送的流程——很多老版本的bug升级后就自动消失了。检查Git配置的细节
除了lfs.locksverify=false,还要确认这些配置:- 仓库级的LFS地址是否正确:运行
git config --local lfs.url,输出应该是https://github.com/<你的用户名>/<你的仓库名>.git/info/lfs,如果不对,手动设置:git config --local lfs.url https://github.com/<你的用户名>/<你的仓库名>.git/info/lfs - 如果你的网络需要代理,要给Git和LFS都配置代理:
git config --global http.proxy <你的代理地址> git config --global https.proxy <你的代理地址>
- 仓库级的LFS地址是否正确:运行
重新提交被错误缓存的文件
如果之前的git add .是把txt文件当成普通Git文件缓存了,就得重置一下:# 移除缓存的txt文件(如果是特定文件就写具体路径) git rm --cached *.txt # 重新添加,此时LFS会接管这些文件 git add *.txt # 修正之前的提交(或者新建一个commit) git commit --amend --no-edit之后再尝试推送。
获取详细错误日志
推送时加上详细日志参数,能帮你定位具体问题:git push -v # 或者更详细的追踪日志 GIT_TRACE=1 git push比如如果是认证失败,日志里会明确提示;如果是网络超时,就能针对性调整网络设置。
内容的提问来源于stack exchange,提问作者Eat at Joes
相关产品推荐
相关产品推荐

