Git за прокси: удаленный HEAD ссылается на несуществующий ref, неспособный проверить
При попытке клонировать ЛЮБОЙ репозиторий через https из github мы получаем:
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
Я столкнулся с решением этой проблемы через этот пост:
http://comments.gmane.org/gmane.comp.version-control.git/185459
Проблема, по-видимому, является ошибкой в версии libcurl, установленной на сервере Ubuntu 11.04. Просто запустить 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
упомянутые выше пакеты можно найти здесь:
Я использовал эти версии и смог использовать 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
Обходной путь, найденный в связанной ошибке Ubuntu:
добавьте следующее в ~/.gitconfig или /etc/gitconfig
# Workaround for bug when using SSL and HTTP proxy (LP #940431)
[url "http://"]
insteadOf = "https://"
Больше не нужно начинать с 12.04.
Ответ 4
Еще одно простое решение:
регрессия libcurl3 с 7.21.0 до 7.19.5.
Скачайте его здесь:
amd64:
http://launchpadlibrarian.net/30289951/libcurl3-gnutls_7.19.5-1ubuntu2_amd64.deb
i386:
http://launchpadlibrarian.net/30287711/libcurl3-gnutls_7.19.5-1ubuntu2_i386.deb