我在谷歌上搜索过,找到了很多解决方案,但没有一个适合我。

我试图通过连接到LAN网络中的远程服务器从一台机器克隆。 在另一台机器上运行此命令会导致错误。 但是使用git运行相同的克隆命令://192.168.8.5…在服务器上,这是正常的并且成功的。

有什么想法吗?

user@USER ~
$ git clone  -v git://192.168.8.5/butterfly025.git
Cloning into 'butterfly025'...
remote: Counting objects: 4846, done.
remote: Compressing objects: 100% (3256/3256), done.
fatal: read error: Invalid argument, 255.05 MiB | 1.35 MiB/s
fatal: early EOF
fatal: index-pack failed

我已经在.gitconfig中添加了这个配置,但也没有帮助。 使用git版本为1.8.5.5.2 .msysgit.0

[core]
    compression = -1

当前回答

在此期间,我关闭了所有正在进行的下载,这可能释放了一些空间,并清除了带宽

其他回答

我尝试了这里提出的所有建议,但没有一个奏效。对我们来说,这个问题是不稳定的,而且随着回购的规模越来越大(在Jenkins Windows构建奴隶上),情况变得越来越糟。

它最终成为git使用的ssh版本。Git被配置为使用某个版本的Open SSH,在用户的.gitconfig文件中通过内核指定。sshCommand变量。把那条线拆了,它就固定了。我相信这是因为Windows现在提供了一个更可靠/兼容的SSH版本,默认使用。

只是在这里添加一个提示,如果你的git克隆命令有一个代理参数,你的代理服务器可能会过早地断开你的http/s请求,因为它自己的配置不允许太大的http响应二进制。仅供参考。

与此相关,仅在没有根访问权限并手动从RPM(使用rpm2cpio)或其他包(.deb, ..)中提取Git到子文件夹时有用。典型的用例:您尝试在公司服务器上使用更新版本的Git而不是过时版本的Git。

如果git克隆失败,导致fatal: index-pack失败,但没有早期的EOF提示,而是提示使用:git index-pack的帮助消息,说明版本不匹配,你需要使用——exec-path参数运行git:

git --exec-path=path/to/subfoldered/git/usr/bin/git clone <repo>

为了让这个过程自动发生,在~/.bashrc中指定:

export GIT_EXEC_PATH=path/to/subfoldered/git/usr/libexec

连接的问题

这是最有可能的原因。特别是如果你的git是最新的。(你可以更新你的git,如果不是最新的)

1-检查连接是否稳定。 2- VPN =>禁用它(如果使用=>罪魁祸首) 3-防病毒和防火墙

VPN VPN VPN =>罪魁祸首

Git缓存,缓冲区,内存和压缩

其他答案很好地涵盖了这一点。

会选https://stackoverflow.com/a/29355320/7668448

使用实例使用cli打开全局配置。

git config --global -e

如果没有,则:

https://stackoverflow.com/a/22317479/7668448

几乎所有的答案都试过了,但运气不佳。最后,通过使用Github桌面应用程序https://desktop.github.com/,它成功了

带有M1芯片的Macbook /Monterey不确定这是否重要。