Git:HTTP请求失败

时间:2011-12-27 12:59:29

标签: git http

我有一个具有HTTPS访问权限的远程存储库。

git status仅列出一个条目:master

git remote -v列出了同一地址的两个条目:一个用于获取,一个用于推送

但当我执行git remote show origin或其他操作时,例如fetch,我得到:

error: while accessing https:...
fatal: HTTP request failed

我在代理服务器后面,但是因为它在我的.gitconfig中设置(sslVerify = no)并且克隆没有问题,我认为问题不在于此。

但是......我的OS(CentOS)已经重新安装。

3 个答案:

答案 0 :(得分:29)

如果你的克隆使用https:而不是git:,那么它可能会在CA证书上进行抨击,即您没有中间证书的副本来验证您的SSL连接。我在几个不同的场合遇到过这种情况。通常使用基于debian的Linux发行版。尝试

git config --global http.sslVerify false

然后再次克隆。如果克隆工作,那就是正在发生的事情。然而,这是一个糟糕的解决方案,当然会关闭SSL验证,这使得使用HTTPS毫无意义,并使您容易受到中间人攻击。

您需要做的是下载适用于您所使用的任何操作系统的CA证书包,在Linux下(以及Debian / Ubuntu)它可能类似于

apt-get install ca-certificates

然后

git config --global http.sslVerify true
git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

虽然您的证书文件路径可能因操作系统版本而异。

这应该让它发挥作用。

答案 1 :(得分:3)

我在HTTP_PROXY环境变量(Windows上的Git Bash)中设置了http代理,但只在我的%HOME%/。gitconfig中设置了代理:

[http]
    proxy = http://USERNAME:PASWORD@URL:PORT

答案 2 :(得分:0)

我有同样的错误,但其他问题比其他答案中提到的还要多。我试图在linux上克隆存储库:

git clone http://xxx/scm/xxx/xxx.git
Initialized empty Git repository in /opt/git/xxx/.git/
Password:
error: Failed connect to xxx:80; Operation now in progress while accessing http://xxx.git/info/refs

fatal: HTTP request failed

这都是因为对文件夹的权限错误 - 但是git而不是某些权限错误会导致HTTP请求失败。所以,如果有人会遇到类似的问题 - 检查文件夹权限!

相关问题