通过http的GIT克隆失败(curl result = 22,http_code 401)

Chr*_*nch 4 git

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.
Run Code Online (Sandbox Code Playgroud)

上面引用的提交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>
Run Code Online (Sandbox Code Playgroud)

有想法该怎么解决这个吗?

tve*_*305 12

概观

HTTP 401表示请求需要用户身份验证,请参阅HTTP状态代码.

假设您输入了正确的用户名和密码,401响应意味着可能没有正确提交凭据,或者凭证未正确验证.忽略这一行.

真正的问题

然而,接下来的3行表明了真正的问题所在.

     error: Unable to find 8fbb19449c4388ae4b51594af3507bfd44c567d7 under http://example.com/is.git
     Cannot obtain needed commit 8fbb19449c4388ae4b51594af3507bfd44c567d7
     while processing commit 129e0ba31589356b9c4326907ddf7e11d7b6be18.
Run Code Online (Sandbox Code Playgroud)

这意味着在服务器上找不到某些提交.

补救

做一个git清理git gc应该解决问题.git gc在托管git repo的文件夹上运行,这应该可以解决问题.

干杯