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

Git推送GitHub仓库失败:连接重置与大文件超限问题求助

Git推送GitHub仓库WoundSize失败的解决方案

问题背景

  • 运行环境:Windows 10,Git 2.34.1
  • 异常现象:仅WoundSize仓库的所有分支推送失败,其他仓库推送正常
  • 初始错误:将http.postBuffer调至1GB后,仍出现RPC连接重置错误,具体报错如下:
PS C:\path\ git push --set-upstream origin working_branch_app --verbose
Pushing to https://github.com/Skymero/WoundSize.git
Enumerating objects: 44290, done.
Counting objects: 100% (44290/44290), done.
Delta compression using up to 16 threads
Compressing objects: 100% (35065/35065), done.
Writing objects: 100% (44276/44276), 701.84 MiB | 124.79 MiB/s, done.
Total 44276 (delta 9221), reused 38538 (delta 7978), pack-reused 0 (from 0)
POST git-receive-pack (735935268 bytes)
error: RPC failed; curl 55 Send failure: Connection was reset
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date

已尝试的操作:

  • 检查GitHub状态页、网络连接,更换ISP
  • 调整Git压缩配置、修改postBuffer参数
  • 切换HTTPS/SSH协议、重新关联远程仓库
  • 调整Pack与Buffer配置,重新生成SSH密钥并确认连接成功

更新后的问题:大文件超限错误

调整配置后推送,出现GitHub大文件限制报错,具体信息如下:

PS C:\Users\USER\WoundSize\WoundSize> git push origin main --force 
Enumerating objects: 46274, done.
Counting objects: 100% (46274/46274), done.
Compressing objects: 100% (37861/37861), done.
Writing objects: 100% (46274/46274), 871.98 MiB | 9.33 MiB/s, done.
Total 46274 (delta 10659), reused 38766 (delta 7161), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (10659/10659), done.
remote: warning: File .venv/Lib/site-packages/cv2/cv2.pyd is 71.00 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: warning: File efficientnetb3_deepskin_semantic.zip is 73.94 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: warning: File checkpoints/efficientnetb3_deepskin_semantic.h5 is 80.71 MB; this is larger than GitHub's recommended maximum file size of 50.00 M 
remote: warning: File .venv/Lib/site-packages/clang/native/libclang.dll is 80.10 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: error: Trace: b881d3427e8c252783de34646ff6dc1637854a7dc76f497bebbb38bb8e2bebc3
remote: error: File .venv/Lib/site-packages/tensorflow/python/_pywrap_tensorflow_internal.pyd is 943.41 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage.
To github.com:Skymero/WoundSize.git
 ! [remote rejected]   main -> main (pre-receive hook declined)
error: failed to push some refs to 'github.com:Skymero/WoundSize.git'

用户尝试删除本地仓库重新克隆、新建虚拟环境并安装依赖、添加相关文件到.gitignore,但问题依旧。

解决方案

1. 彻底清除Git历史中的大文件

.gitignore仅对未跟踪文件生效,已提交到历史的大文件必须从仓库历史中移除,推荐使用git filter-repo工具(替代老旧的filter-branch,更安全高效):

  • 安装git-filter-repo:Windows用户可通过Chocolatey执行choco install git-filter-repo,或直接下载官方脚本使用
  • 列出仓库中所有大文件:
    git rev-list --objects --all | grep -E "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -20 | awk '{print$1}')"
    
  • 删除指定超限文件(以最大的_pywrap_tensorflow_internal.pyd为例):
    git filter-repo --path .venv/Lib/site-packages/tensorflow/python/_pywrap_tensorflow_internal.pyd --invert-paths
    
  • 对其他超限文件重复上述删除命令:
    git filter-repo --path .venv/Lib/site-packages/cv2/cv2.pyd --invert-paths
    git filter-repo --path efficientnetb3_deepskin_semantic.zip --invert-paths
    git filter-repo --path checkpoints/efficientnetb3_deepskin_semantic.h5 --invert-paths
    git filter-repo --path .venv/Lib/site-packages/clang/native/libclang.dll --invert-paths
    
  • 强制推送清理后的仓库历史:
    git push origin main --force
    

2. 配置.gitignore避免重复提交大文件

确保.gitignore包含以下规则,阻止虚拟环境和大文件被Git跟踪:

# 虚拟环境目录
.venv/
venv/
env/

# 大文件类型
*.h5
*.zip
*.pyd
*.dll

# 模型 checkpoint 目录
checkpoints/

添加后提交规则:

git add .gitignore
git commit -m "Add gitignore rules to exclude large files and venv"
git push origin main

3. 可选:用Git LFS管理必要的大文件

如果部分大文件(如训练好的模型)需要保留在仓库中,可使用Git LFS:

  • 安装Git LFS:
    git lfs install
    
  • 跟踪指定类型的大文件:
    git lfs track "*.h5"
    git lfs track "*.zip"
    git lfs track "*.pyd"
    git lfs track "*.dll"
    
  • 提交跟踪配置文件:
    git add .gitattributes
    git commit -m "Track large files with Git LFS"
    git push origin main
    

注意事项

  • 强制推送会覆盖远程仓库历史,需通知团队成员同步本地仓库:git fetch origin && git reset --hard origin/main
  • 虚拟环境不应提交到Git,始终通过requirements.txt管理依赖,其他开发者可执行pip install -r requirements.txt重建环境

内容的提问来源于stack exchange,提问作者Skymero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:29:53