Mac OS X 10.6.6服务器 客户端和服务器的git版本是:1.7.3.5
返回的错误是:
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.
以上引用的提交sha1存在于repo中,我可以通过文件系统克隆,但不能通过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 :(得分: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 cleanup git gc应该可以解决问题。在托管git repo的文件夹上运行 git gc
,这样可以解决问题。
干杯
答案 1 :(得分:0)
您尝试推送时看到的HTTP 403是代码,意思是“禁止”。你需要添加:
Order allow,deny
Allow from all
...到你的Location
区块?