git克隆失败,“索引包”失败?

所以我创build了一个远程的repo,这不是光秃秃的(因为我需要redmine来读取它),并且它被设置为与组共享(所以git init –shared = group)。 我能够推到远程回购,现在我试图克隆它。

如果我通过networking克隆它,我得到这个:

remote: Counting objects: 4648, done. remote: Compressing objects: 100% (2837/2837), done. error: git-upload-pack: git-pack-objects died with error.B/s fatal: git-upload-pack: aborting due to possible repository corruption on the remote side. remote: aborting due to possible repository corruption on the remote side. fatal: early EOF fatal: index-pack failed 

我可以在没有问题的情况下在本地克隆它,而且我运行了“git fsck”,它只报告一些悬挂的树/斑点,我知道这不是问题。 什么可能导致这个? 我仍然能够从中拉,只是不克隆。 我应该注意到远程git版本是1.5.6.5而本地是1.6.0.4

我试图克隆我的本地副本的回购,删除.git文件夹,推到一个新的回购,然后克隆新的回购,我得到了同样的错误,这导致我相信它可能是一个文件在回购是造成git上传包失败…

编辑:我有一些在回购窗口二进制文件,因为我只是build立了Python模块,然后卡在那里,所以其他人都不必build立他们。 如果我删除Windows二进制文件,并推到一个新的回购,我可以再次克隆,也许这提供了一个线索。 试图精确地缩小现在导致问题的文件。

我解决这个问题的方式是这样的:我的git守护进程在Windows上运行,客户端在其他计算机上。

我find了一个解决方法(但它只会在Windows上工作)。

从cmd.exe开始使用详细的git守护进程:

 "C:\Program Files\Git\bin\sh.exe" --login -i -c 'git.exe daemon --verbose ' 

没有testing,如果它直接在git bash中工作。 也许会。

然后(在开始任何克隆之前,拉,取,…)在窗口中select一些文本(注意:“快速编辑模式”必须启用(可以在:cmd.exe – >属性中find(单击左上angular你的CMD窗口的一angular) – >编辑选项))运行git守护进程。 这将阻止它在该窗口中打印任何进一步的消息。

当git守护进程的输出线程被阻塞时,那么错误不会发生

我和你有同样的问题。 当我克隆我的错误信息:

 Cloning into test... remote: Counting objects: 6503, done. remote: Compressing objects: 100% (4519/4519), done. Connection to git.myhost.im closed by remote host.| 350 KiB/s fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed 

在我的情况下,原因是我的存储库大小(200M)比我的git服务器的内存(128M)大。 当我从git服务器克隆的时候,我在服务器上使用了命令top ,这表明内存使用率很快就超过了128M。

当我使用另一台具有4G内存的服务器时, git clone就可以了。 你也可以尝试添加更多的交换空间到你的服务器。

“git gc”是否抱怨?

我有同样的问题。 我的猜测也是,这与我使用文本/ CRLF模式创build文件的事实有关。 事实上,将CygWin切换到UNIX /二进制换行模式后,一切正常。

看到:

顺便说一句,我切换文件模式最简单的方法是编辑/ etc / fstab从切换

none / cygdrive cygdrive text,posix = 0,user 0 0

none / cygdrive cygdrive binary,posix = 0,user 0 0

使用GIT_TRACE环境variables来获得debugging输出。 将其设置为“1”以跟踪到stderr或跟踪到文件的绝对path。

我也有cygwin git的问题,错误: fatal: index-pack failed

我能够通过为我的项目创build一个装载并将其设置为二进制模式来解决此问题。 因为我的/c被设置为文本模式。

将cygwin添加到/etc/fstab

 c:/work/Projects /projects some_fs binary 0 0 

运行mount -a来挂载所有驱动器。

您需要在/projects中使用cygwin git/c/work/Projects将失败。

不知道这是否会为你工作。

我将客户端计算机的git源码升级到服务器正在运行的相同版本,并为我解决了这个问题。

我有同样的问题,我会改变我的gitconfiguration,并且工作正常:

git config –global pack.packSizeLimit 50m
git config –global pack.windowMemory 50m
git config –global core.compression 9

我通过修复文件夹权限来解决这个问题:

 sudo chmod 777 -R Your_folder