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

我试图通过连接到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,如果不是最新的)

1-检查连接是否稳定。 2- VPN =>禁用它(如果使用=>罪魁祸首) 3-防病毒和防火墙

VPN VPN VPN =>罪魁祸首

Git缓存,缓冲区,内存和压缩

其他答案很好地涵盖了这一点。

会选https://stackoverflow.com/a/29355320/7668448

使用实例使用cli打开全局配置。

git config --global -e

如果没有,则:

https://stackoverflow.com/a/22317479/7668448

其他回答

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

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

最终通过git配置——global core.compression解决

来自BitBucket问题线程:

我试了差不多五次,还是会这样。 然后我尝试使用更好的压缩,它工作! Git配置——global core.compression

从Git文档:

core.compression 整数-1..9,表示默认压缩 的水平。-1是zlib的默认值。 0表示不压缩,1..9是 各种速度/大小的权衡,9是最慢的。 如果设置,这将提供一个 默认为其他压缩变量,如core.looseCompression 和pack.compression。

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

[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

我也遇到过同样的问题。REPO太大,无法通过SSH下载。就像@elin3t推荐的那样,我已经通过HTTP/HTTPS克隆了,并将.git/config中的REMOTE URL更改为使用SSH REPO。

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进行维护)。