当前位置:  开发笔记 > 前端 > 正文

代理后面的git:远程HEAD指的是不存在的ref,无法签出

如何解决《代理后面的git:远程HEAD指的是不存在的ref,无法签出》经验,为你挑选了3个好方法。

当尝试从github通过https克隆任何存储库时,我们得到:

git clone https://github.com/rails/rails.git
Cloning into rails...
remote HEAD refers to nonexistent ref, unable to checkout

我们的服务器是代理服务器.我们已经适当地定义了http_proxy和https_proxy.所有其他功能都在运行.

git版本是1.7.5.4

服务器是Ubuntu Server 11.04.

请注意,由于这种情况发生在我们尝试的每个 github存储库中,我们坚信它不是存储库中refs的问题.我们已经尝试过像jquery和rails这样众所周知的存储库 - 如果问题存在于那些存储库中,那么会有很多人抱怨.我坚信问题在于git和代理,但我所有的谷歌搜索都没有找到解决方案.

作为一个额外的数据点,如果它们是http,克隆似乎工作正常.只有https克隆因此错误而失败.

请注意,我不认为这个问题是重复的,因为此错误的其他问题集中在存储库的问题 - 不使用git和代理.



1> wadesworld..:

我通过这篇文章偶然发现了这个问题的解决方案:

http://comments.gmane.org/gmane.comp.version-control.git/185459

这个问题显然是Ubuntu服务器11.04中安装的libcurl版本中的一个错误.简单地运行apt-get install libcurl3-gnutls不足以解决问题,因为它只是报告已经安装了最新版本.

为了解决这个问题,我不得不手动安装最新的libcurl3-gnutls和两个依赖项,如下所示(显然,先将它们下载到我的系统之后):

sudo dpkg -i libp11-kit0_0.6-0ubuntu2_amd64.deb
sudo dpkg -i libgnutls26_2.12.14-3_amd64.deb
sudo dpkg -i libcurl3-gnutls_7.22.0-3ubuntu1_amd64.deb

希望这有助于某人.



2> 小智..:

上面提到的包可以在这里找到:

http://packages.ubuntu.com/en/precise/amd64/libp11-kit0/download

http://packages.ubuntu.com/en/precise/amd64/libgnutls26/download

http://packages.ubuntu.com/en/precise/amd64/libcurl3-gnutls/download

我使用这些版本,并且能够在代理后面使用git而不会出现问题:

$ sudo dpkg -i libp11-kit0_0.10-1_amd64.deb libgnutls26_2.12.14-5ubuntu2_amd64.deb libcurl3-gnutls_7.22.0-3ubuntu2_amd64.deb



3> Alexey Roman..:

在链接的Ubuntu错误中找到的解决方法:

将以下内容添加到〜/ .gitconfig或/ etc/gitconfig中

# Workaround for bug when using SSL and HTTP proxy (LP #940431)
[url "http://"]
 insteadOf = "https://"

不再需要从12.04开始.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有