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

Windows11下Git SSH克隆特定仓库仅在特定路径高概率失败求助

问题:Git SSH克隆仓库时随机失败(Windows 11环境)

系统环境

  • 系统:Windows 11
  • Git版本:2025-06-28最新版Git Bash
  • 目标仓库:GitHub公共仓库biodata(大小不足6MB),支持HTTPS和SSH两种克隆方式

克隆表现

  • HTTPS方式克隆始终成功
  • 在/c/dev路径下用SSH克隆成功率约60%
  • 在/d/dev路径下用SSH克隆成功率仅约5%

失败现象

进程卡在以下步骤:

Cloning into 'biodata'...
remote: Enumerating objects: 991, done.
remote: Counting objects: 100% (293/293), done.
remote: Compressing objects: 100% (172/172), done.
Receiving objects:  36% (357/991)

超时后出现错误:

fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

未等待超时的情况下,需执行taskkill /IM git.exe /F强制终止进程。

已尝试操作

从空配置到使用以下.gitconfig配置,问题仍未解决:

[core]
    askpass =
    compression = 0
    eol = lf
    autocrlf = false
    fileMode = false
    ignoreStat = false
    packedGitLimit = 512m 
    packedGitWindowSize = 512m 
[user]
    email = jeanmichael.celerier+github@gmail.com
    name = Jean-Michaël Celerier
[filter "lfs"]
    smudge = git-lfs smudge -- %f
    process = git-lfs filter-process
    required = true
    clean = git-lfs clean -- %f
[http]
    postBuffer = 1548576000
    maxRequestBuffer = 200M
[ssh]
    postBuffer = 1548576000
    maxRequestBuffer = 200M
[pack]
    window = 1
    deltaCacheSize = 2047m 
    packSizeLimit = 2047m 
    windowMemory = 2047m

解决建议

1. 排查磁盘与路径问题

  • 检查D盘健康:执行chkdsk D:扫描磁盘错误,排除坏道或文件系统异常导致的写入阻塞
  • 确认路径权限:右键/d/dev文件夹→属性→安全,确保当前用户拥有完全控制权限,避免Git写入时权限不足
  • 临时关闭安全防护:禁用Windows Defender或第三方杀毒软件对/d/dev的实时监控,排查是否是安全软件拦截SSH数据包

2. 调整SSH连接参数

  • 编辑SSH配置文件:执行vim ~/.ssh/config(文件不存在则新建),添加以下内容:
Host github.com
    ServerAliveInterval 30
    ServerAliveCountMax 5
    IPQoS throughput
  • 说明:ServerAliveInterval每隔30秒发送心跳包,防止连接因无数据传输被断开;IPQoS throughput优先保证传输吞吐量,减少网络优先级导致的中断

3. 优化Git SSH传输配置

  • 重置.gitconfig的[ssh]段,改用小批量传输配置:
[core]
    compression = 0
[pack]
    window = 0
    depth = 1
  • 先克隆浅版本再拉取完整历史:
git clone --depth 1 git@github.com:eringee/biodata.git
cd biodata
git fetch --unshallow
  • 说明:浅克隆减少单次传输数据量,降低连接中断概率,后续拉取完整历史成功率更高

4. 更换SSH客户端

  • 改用Windows自带OpenSSH:
    1. 打开Windows设置→应用→可选功能,确认已安装"OpenSSH客户端"
    2. 执行git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe",让Git调用系统SSH客户端
  • 说明:系统自带OpenSSH在Windows环境下兼容性更好,可减少传输异常

内容的提问来源于stack exchange,提问作者Jean-Michaël Celerier

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:53:19