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

我试图通过连接到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克隆命令有一个代理参数,你的代理服务器可能会过早地断开你的http/s请求,因为它自己的配置不允许太大的http响应二进制。仅供参考。

其他回答

我也有同样的问题,我甚至试图直接从网站下载项目作为一个压缩文件,但下载被中断在完全相同的百分比。

这句话像魔法一样解决了我的问题

git config --global core.compression 0

我知道其他答案也提到了这一点,但是这里没有人提到这条线本身就可以解决问题。

希望能有所帮助。

首先,关闭压缩:

git config --global core.compression 0

接下来,让我们做一个部分克隆来截断下来的信息量:

git clone --depth 1 <repo_URI>

当它工作时,进入新目录并检索克隆的其余部分:

git fetch --unshallow 

或者,或者,

git fetch --depth=2147483647

现在,做一个常规的拉:

git pull --all

我认为在1.8版本中msysgit有一个小故障。x版本会加剧这些症状,因此另一种选择是尝试较早版本的git(我认为<= 1.8.3)。

我尝试了所有这些命令,没有一个对我有用,但有用的是将git_url更改为http而不是ssh

如果是克隆命令做:

git clone <your_http_or_https_repo_url> 

否则,如果你拉现有的回购,做它

git remote set-url origin <your_http_or_https_repo_url>

希望这能帮助到一些人!

当我运行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的状态,有很多未提交的更改 我通过提交和推送所有未提交的更改来解决这个问题。

网络质量很重要,尽量切换到不同的网络。 帮助我的是把我的互联网连接从维珍媒体(Virgin Media)的高速陆地宽带改为手机上的热点。

在此之前,我尝试了限制克隆大小的公认答案,尝试了在64位和32位版本之间切换,尝试了禁用git文件缓存,没有一个有用。

然后我通过我的手机切换到连接,第一步(git克隆—深度1 <repo_URI>)成功了。切换回我的宽带,但下一步(git fetch -unshallow)也失败了。所以我删除了到目前为止克隆的代码,切换到移动网络,再次尝试默认方式(git clone <repo_URI>),它成功了,没有任何问题。