我想通过Nginx HTTPS服务器创建一个git存储库.
我已经设置了post-commit钩子来运行git-update-server-info以更新"dumb"后端的refs.
通过HTTPS接口提取更新工作正常,但是,当最初检出存储库时,它失败了:
[test@test ttt]$ git clone https://server/git/test.git/ Cloning into thesis... Username: Password: error: The requested URL returned error: 401 (curl_result = 22, http_code = 401, sha1 = 2be2bcc15d1a79eb4e37e03fd2070ee0f229457c) error: Unable to find 2be2bcc15d1a79eb4e37e03fd2070ee0f229457c under https://test/git/test.git Cannot obtain needed commit 2be2bcc15d1a79eb4e37e03fd2070ee0f229457c while processing commit 6c155f7098fd75f23edf71ac5b70b7c22f6070e7. error: Fetch failed.
在服务器端存储库上手动运行"git update-server-info"并不能解决问题,但运行"git gc"会解决问题.
但是,"git gc"修复只有在我将更新推送到服务器之后才能运行,之后整个"git clone"问题再次启动.
在服务器上我正在运行git 1.7.1(来自Debian backports),在客户端我正在运行1.7.2.2(来自Arch Linux)
有关如何解决此问题的任何提示?不幸的是,运行"智能"HTTP后端目前不是一种选择.
有相同的错误,但包含URL中的用户名适合我:
https://myuser@server/git/test.git/