Git、WSL2、SSH:读取边带数据包时意外断开连接

Git、WSL2、SSH:读取边带数据包时意外断开连接

尝试使用 SSH 克隆远程 Git 存储库时出现以下错误:

git clone user@remote-repo:project.git .
remote: Counting objects: 187444, done.
remote: Compressing objects: 100% (73430/73430), done.
client_loop: send disconnect: Broken pipe.06 MiB | 4.04 MiB/s
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: index-pack failed

我的环境具有以下规格:

  • WSL2(Windows 子系统 4 Linux)
  • git --version git version 2.30.1

git 包可以在这里找到https://pkgs.alpinelinux.org/package/edge/main/x86_64/git

uname -a
Linux 4.19.128-microsoft-standard #1 SMP Tue Jun 23 12:58:10 UTC 2020 x86_64 Linux

2021-03-09-07:11AM wsl@Alpine:~$ more /etc/issue
Welcome to Alpine Linux 3.10
Kernel \r on an \m (\l)

我不知道为什么会发生这种情况。这是 Alpine 上的爆发问题还是内核配置问题?WSL?我怀疑是远程主机的问题。远程主机可以很好地进行 SSH 操作,并且可以为每个非 WSL 用户进行克隆。

答案1

我的笔记本电脑上的 WiFi 网卡是根本原因。我的卡是杀手级 WiFi,但英特尔 WiFi 卡也发生了同样的情况。

升级 WiFi 卡驱动程序立即解决了该问题。

我仍然完全不明白网络驱动器是如何导致这个奇怪的 git 错误问题的。

答案2

export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1

git config --global core.compression 0
git clone --depth 1 <repo_URI>
# cd to your newly created directory
git fetch --unshallow 
git pull --all

答案3

对我来说诀窍是--no-tags

git clone --no-tags ssh://[email protected]/repo/project.git

答案4

我也遇到过同样的问题,特别是对于较大的存储库。修复描述在这里已在多个工作站上为我工作:

打开 git 全局配置:

git config --global -e

并添加以下条目:

## Fix for fetch-pack: unexpected disconnect while reading sideband packet
[core] 
packedGitLimit = 512m 
packedGitWindowSize = 512m 
[pack] 
deltaCacheSize = 2047m 
packSizeLimit = 2047m 
windowMemory = 2047m

相关内容