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

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

当前回答

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

heroku git:clone -a myapp

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

其他回答

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

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

在我的情况下,当协议是https时,什么都不起作用,然后我切换到ssh,并确保,我从上次提交而不是整个历史,以及特定的分支中拉回回购。这帮助了我:

Git克隆——深度1 "ssh:。Git "——branch " specific_branch "

以前的回答建议设置为512m。我想说,有理由认为这在64位架构上是适得其反的。核心文档。packedGitLimit说:

缺省情况下,在32位平台上是256mib,在64位平台上是32tib(实际上是无限的)。这对于所有用户/操作系统都是合理的,除了最大的项目。您可能不需要调整这个值。

如果你想尝试一下,检查你是否设置了它,然后删除设置:

git config --show-origin core.packedGitLimit
git config --unset --global core.packedGitLimit

在我的例子中,问题不在于git配置参数,而是我的存储库中有一个文件超过了系统允许的最大文件大小。我能够检查它试图下载一个大文件,并得到一个“文件大小限制超过”在Debian上。

之后,我编辑了我的/etc/security/limits.conf文件,在它的末尾添加了以下几行:

硬fsize 1000000 软fsize 1000000

要真正“应用”新的限制值,您需要重新登录

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

如果是克隆命令做:

git clone <your_http_or_https_repo_url> 

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

git remote set-url origin <your_http_or_https_repo_url>

希望这能帮助到一些人!