2011-03-09 123 views
4

的Mac OS X 10.6.6服務器 Git版本的客戶端和服務器:1.7.3.5GIT克隆通過HTTP失敗(捲曲結果= 22,HTTP_CODE 401)

返回錯誤是:

Chris-Muenchs-Mac-Book-Pro:Desktop cmuench$ git clone http://example.com/is.git 
Cloning into is... 
Username: 
Password: 
error: The requested URL returned error: 401 (curl_result = 22, http_code = 401, sha1 = 8fbb19449c4388ae4b51594af3507bfd44c567d7) 
error: Unable to find 8fbb19449c4388ae4b51594af3507bfd44c567d7 under http://example.com/is.git 
Cannot obtain needed commit 8fbb19449c4388ae4b51594af3507bfd44c567d7 
while processing commit 129e0ba31589356b9c4326907ddf7e11d7b6be18. 
error: Fetch failed. 

以上引用的commit sha1存在於回購站中,我可以通過文件系統克隆,但不能通過http或https進行克隆。

這裏是我的Apache設置:(WebDAV是ON)(本段上面定義的)

<Location "/is.git"> 
    AuthType Basic 
    <Limit GET HEAD OPTIONS CONNECT POST PROPFIND PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> 
     Require group development 
    </Limit> 
    AuthName "is.git" 
</Location> 

關於如何解決此問題的任何想法?

+0

我說我的用戶名,並能夠克隆,但現在我不能推: PUT錯誤:捲曲結果= 22,HTTP代碼= 403只 –

回答

0

您嘗試推送時看到的HTTP 403代碼的含義是「Forbidden」。您是否需要添加:

Order allow,deny 
Allow from all 

...您的Location區塊?

+0

原帖列出了HTTP錯誤代碼401查看下面是爲了解決這個問題。 – jeremiah

+0

這是針對OP後續評論中無法推送的解決方案;我將編輯澄清。 – nickgrim

11

概述

的HTTP 401表示請求需要用戶認證,參照HTTP Status Codes

假設您輸入了正確的用戶名和密碼,則401響應表示可能沒有正確提交憑據,或者憑據未被正確驗證。忽略這一行。

真正的問題

接下來的3行然而指明瞭真正的問題所在。

 error: Unable to find 8fbb19449c4388ae4b51594af3507bfd44c567d7 under http://example.com/is.git 
    Cannot obtain needed commit 8fbb19449c4388ae4b51594af3507bfd44c567d7 
    while processing commit 129e0ba31589356b9c4326907ddf7e11d7b6be18. 

這些暗示在服務器上找不到某些提交。

補救

做一個混帳清理git gc應該解決這個問題。運行git gc在git回購託管的文件夾上,並且應該解決問題。

乾杯

+0

git gc!謝謝你,它幫助我不止一個! +1 – ianaz

+0

很酷。 git gc永遠是一個救世主 – tver3305