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 /二进制换行模式后,一切正常。
看到:
- http://cygwin.com/cygwin-ug-net/using-textbinary.html
- http://www.sourceware.org/cygwin/cygwin-ug-net/using-utils.html#mount
顺便说一句,我切换文件模式最简单的方法是编辑/ 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