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

GitHub Desktop Git推送数据流错误求助:新旧仓库均出问题

问题原因分析
  • VS项目冗余/大文件触发限制:VS项目生成的obj、bin、.vs等文件夹里的编译缓存、依赖文件,或是题解里的大测试数据文件,可能超过GitHub单文件100MB限制;这类二进制文件未通过Git LFS管理时,会直接导致Git数据流错误,且错误数对应VS项目数,说明每个出问题的项目都存在这类文件。
  • 旧仓库Git状态残留损坏:闲置一年的仓库可能存在本地Git数据库损坏,复制Solutions文件夹时,可能携带了子目录中隐藏的.git缓存文件,导致新仓库继承了损坏状态。
  • 特殊文件/字符干扰:部分VS项目的文件名包含全角字符、特殊符号,或是文件本身有损坏的二进制数据,导致Git无法正常解析这些对象。
解决步骤
  • 清理VS冗余文件

    1. 在Solutions根目录创建.gitignore文件,写入VS项目通用忽略规则:
      # Visual Studio ignore rules
      .vs/
      bin/
      obj/
      *.suo
      *.user
      *.sln.docstates
      packages/
      
    2. 手动删除所有项目下的obj、bin、.vs文件夹,避免冗余文件被提交。
  • 排查并处理大文件

    1. 打开仓库的终端(GitHub Desktop可通过「Repository」→「Open in Terminal」打开),执行命令列出体积较大的文件:
      git ls-files -s | sort -k 2 -n -r | head -20
      
    2. 若发现超过100MB的文件,用Git LFS跟踪:
      git lfs track "*.dat"  # 替换为大文件的实际后缀,如*.zip、*.exe
      git add .gitattributes
      git commit -m "Track large files via Git LFS"
      
  • 彻底重建本地仓库(前两步无效时)

    1. 将Solutions文件夹备份到本地其他位置。
    2. 删除当前本地仓库文件夹,在GitHub重新创建空仓库。
    3. 把备份的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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:06:22