GitHub Desktop Git推送数据流错误求助:新旧仓库均出问题
问题原因分析
- VS项目冗余/大文件触发限制:VS项目生成的
obj、bin、.vs等文件夹里的编译缓存、依赖文件,或是题解里的大测试数据文件,可能超过GitHub单文件100MB限制;这类二进制文件未通过Git LFS管理时,会直接导致Git数据流错误,且错误数对应VS项目数,说明每个出问题的项目都存在这类文件。 - 旧仓库Git状态残留损坏:闲置一年的仓库可能存在本地Git数据库损坏,复制
Solutions文件夹时,可能携带了子目录中隐藏的.git缓存文件,导致新仓库继承了损坏状态。 - 特殊文件/字符干扰:部分VS项目的文件名包含全角字符、特殊符号,或是文件本身有损坏的二进制数据,导致Git无法正常解析这些对象。
解决步骤
清理VS冗余文件
- 在
Solutions根目录创建.gitignore文件,写入VS项目通用忽略规则:# Visual Studio ignore rules .vs/ bin/ obj/ *.suo *.user *.sln.docstates packages/ - 手动删除所有项目下的
obj、bin、.vs文件夹,避免冗余文件被提交。
- 在
排查并处理大文件
- 打开仓库的终端(GitHub Desktop可通过「Repository」→「Open in Terminal」打开),执行命令列出体积较大的文件:
git ls-files -s | sort -k 2 -n -r | head -20 - 若发现超过100MB的文件,用Git LFS跟踪:
git lfs track "*.dat" # 替换为大文件的实际后缀,如*.zip、*.exe git add .gitattributes git commit -m "Track large files via Git LFS"
- 打开仓库的终端(GitHub Desktop可通过「Repository」→「Open in Terminal」打开),执行命令列出体积较大的文件:
彻底重建本地仓库(前两步无效时)
- 将
Solutions文件夹备份到本地其他位置。 - 删除当前本地仓库文件夹,在GitHub重新创建空仓库。
- 把备份的
Solutions复制到新本地目录,执行初始化命令:git init git add .gitignore git add . git commit -m "Initial commit of LeetCode solutions" git remote add origin <你的GitHub仓库URL> git push -u origin main
- 将
逐个项目测试提交
先仅添加一个能正常推送的项目,提交并推送确认无问题后,再逐个添加其他项目,每次提交后立即推送,定位到具体出问题的项目,检查该项目内是否存在特殊文件或超大文件,针对性处理。
内容的提问来源于stack exchange,提问作者SHENGYU JIA
相关产品推荐
相关产品推荐

