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

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

当前回答

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

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

其他回答

当git内存不足时,我得到了这个错误。

释放一些内存(在本例中:让编译作业完成)并再次尝试对我来说是可行的。

当我运行git拉时,我得到了与下面相同的问题

remote: Counting objects: 149, done.
Connection to git-codecommit.us-east-1.amazonaws.com closed by remote host.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

然后我检查了git的状态,有很多未提交的更改 我通过提交和推送所有未提交的更改来解决这个问题。

这些对我来说都没用,但使用Heroku的内置工具却奏效了。

heroku git:clone -a myapp

文档在这里:https://devcenter.heroku.com/articles/git-clone-heroku-app

使用@cmpickle答案,我构建了一个脚本来简化克隆过程。

它托管在这里:https://gist.github.com/gianlucaparadise/10286e0b1c5409bd1049d67640fb7c03

你可以使用下面的代码行运行它:

curl -sL https://git.io/JvtZ5 | sh -s repo_uri repo_folder

就我而言,我只是升级了我的OpenSSL版本。旧版本的OpenSSL有漏洞,也没有可能需要的最新算法。截至今天,命令openssl version显示openssl 1.1.1f 31 Mar 2020。