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

我试图通过连接到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-daemon问题似乎在v2.17.0中得到了解决(使用无法工作的v2.16.2.1进行了验证)。 例如,在控制台中选择文本以“锁定输出缓冲区”的变通方法应该不再需要。

从https://github.com/git/git/blob/v2.17.0/Documentation/RelNotes/2.17.0.txt:

对“git守护进程”的各种修复。 (稍后合并ed15e58efe jk/daemon-fixes进行维护)。

其他回答

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

我在设置git缓冲区后尝试了几次,正如我在问题中提到的,现在似乎工作了。

所以如果你遇到这个错误,运行这个命令:

git config --global http.postBuffer 2M

然后再试几次。

参考:

git推送错误:RPC失败;result=56, HTTP code = 0

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

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

与此相关,仅在没有根访问权限并手动从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 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)。