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

我试图通过连接到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

当前回答

在我的情况下,这是一个连接问题。我连接到一个内部wifi网络,在这个网络中,我只能访问有限的资源。这是让git进行取回,但在某个时间它崩溃了。 这意味着它可能是网络连接问题。检查是否一切运行正常:防病毒,防火墙等。

因此,elin3t的答案很重要,因为ssh提高了下载的性能,从而可以避免网络问题

其他回答

下面的配置设置不适合我。

[core] 
packedGitLimit = 512m 
packedGitWindowSize = 512m 
[pack] 
deltaCacheSize = 2047m 
packSizeLimit = 2047m 
windowMemory = 2047m

正如之前的评论,这可能是git的内存问题。 因此,我尽量减少工作线程(从32个减少到8个),这样它就不会同时从服务器获取太多数据。然后我还添加了“-f”来强制同步其他项目。

-f: Proceed with syncing other projects even if a project fails to sync.

那么现在可以正常工作了。

repo sync -f -j8

这对我来说很有效,设置谷歌的命名服务器,因为没有指定标准的命名服务器,然后重新启动网络:

sudo echo "dns-nameservers 8.8.8.8" >> /etc/network/interfaces && sudo ifdown venet0:0 && sudo ifup venet0:0

确保你的硬盘有足够的剩余空间

尝试了这里的大部分答案,我得到的错误与PUTTY SSH客户端与所有可能的星座。

一旦我切换到OpenSSH,错误就消失了(删除环境变量GIT_SSH并重新启动git bash)。

我用的是一台新机器和最新的git版本。在许多其他/旧机器上(AWS也是如此),它在没有任何git配置的情况下使用PUTTY也能正常工作。

此错误可能发生在git的内存需求。您可以将这些行添加到全局git配置文件中,即$USER_HOME中的.gitconfig,以解决这个问题。

[core] 
packedGitLimit = 512m 
packedGitWindowSize = 512m 
[pack] 
deltaCacheSize = 2047m 
packSizeLimit = 2047m 
windowMemory = 2047m