我有一个具有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)已经重新安装。
答案 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请求失败。所以,如果有人会遇到类似的问题 - 检查文件夹权限!