2011-12-06 15 views
19

當試圖從GitHub克隆通過https任何存儲庫,我們得到:混帳:遠程HEAD是指不存在的參考,不能簽出

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和代理服務器,但是我所有的Google搜索都沒有找到解決方案。

額外的數據點,克隆似乎如果他們HTTP做工精細。這只是https錯誤克隆的失敗。

請注意,我不認爲這個問題是一個重複的,因爲這個錯誤注重與庫問題其他問題 - 不與Git和代理工作。

回答

19

我已經通過這個帖子整個解決方案無意中發現了這個問題:

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 

希望這有助於有人。

+0

這個工作對我蠻好,拉包了回購的精確。 – jhogendorn

+0

此處也是如此,即使我收到以下錯誤消息:「p11-kit:無法加載模塊:/usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so:/ usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so:無法打開共享目標文件:沒有這樣的文件或目錄「。 [報告給Ubuntu。](https://bugs.launchpad.net/ubuntu/+source/curl/+bug/940431) – l0b0

+0

dpkg:處理錯誤libcurl3-gnutls_7.22.0-3ubuntu4_amd64.deb(--install): 包體系結構(amd64)與系統(i386)不匹配。涼。你能否發佈32位解決方案?我實際上使用了阿列克謝羅曼諾夫的解決方案。 –

9

在鏈接Ubuntu的錯誤發現一種解決方法:

以下添加到〜/的.gitconfig或/ etc/gitconfig

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

不再需要先從12.04。