我正在尝试克隆(私有)远程存储库,但我收到以下错误:
remote: Counting objects: 11410, done
remote: Finding sources: 100% (11410/11410)
remote: Getting sizes: 100% (9178/9178)
error: RPC failed; result=56, HTTP code = 200
error: inflate: data stream error (invalid block type)
fatal: pack has bad object at offset 427781: inflate returned -3
我在Windows 8 Pro Build 9200上使用Git版本1.9.4。该存储库上有大文件,但文件大小似乎与我的问题无关,因为当我尝试克隆其他较小的存储库时,我仍然会遇到相同的错误(与AppHarbor一起使用<20Mb)。 有任何想法吗 ?
答案 0 :(得分:8)
我的系统管理员发现问题出在Avast上。如果您遇到同样的问题并且使用Avast,请尝试禁用它。这解决了我的问题。
答案 1 :(得分:4)
我在ubuntu和debian中找到的git二进制文件都有这个bug。它是由GnuTLS中的一个错误引起的,git是针对这个错误编译的(跟踪here)。使用HTTPS URL在Ubuntu或Debian中克隆git repo是根本不可能的。
您有两种选择:
libcurl4-openssl-dev
重新编译git(libcurl4-gnutls-dev
对我不起作用)如果您决定选项#2,这里是复制/粘贴,以重新编译debian或ubuntu上的最新git。找到了最新版本的git here。
apt-get update \
&& apt-get install -y build-essential libcurl4-openssl-dev libexpat1-dev gettext libz-dev libssl-dev autoconf \
&& wget https://github.com/git/git/archive/v2.8.1.tar.gz -O git.tar.gz \
&& tar -zxf git.tar.gz \
&& cd git-* \
&& make configure \
&& ./configure --prefix=/usr \
&& make install
答案 2 :(得分:0)
我通过使用SSH来执行克隆来解决它。找到解决方案here。
要使用SSH与Bitbucket,您可以创建SSH标识。身份 由私钥和公钥组成,它们是密钥对。 私钥驻留在您的本地计算机和公共用户身上 上传到您的Bitbucket帐户。将公钥上传到您的公钥后 帐户,您可以使用SSH连接您拥有的存储库 其他人拥有的存储库,只要其他所有者提供 帐户权限。通过在本地系统和之间设置SSH 在Bitbucket服务器上,您的系统使用密钥对进行自动化 认证;每次你都不需要输入密码 与您的Bitbucket存储库进行交互。
以下是Setup SSH for Git的方法。
答案 3 :(得分:-1)
我在Ubuntu环境中遇到同样的问题,运行导出GIT_CURL_VERBOSE=1
解决它。 Here是链接。