Git:HTTP请求失败

Ood*_*ini 19 git http

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

git status 仅列出一个条目:master

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

但当我这样做git remote show origin或其他操作时fetch,我得到:

error: while accessing https:...
fatal: HTTP request failed
Run Code Online (Sandbox Code Playgroud)

我在代理后面,但是因为它在我的.gitconfig中设置(sslVerify = no)并且克隆是正常的,我不认为问题来自于此.

但是......我的操作系统(CentOS)已经重新安装.

Ala*_*lan 30

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

git config --global http.sslVerify false
Run Code Online (Sandbox Code Playgroud)

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

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

apt-get install ca-certificates
Run Code Online (Sandbox Code Playgroud)

然后

git config --global http.sslVerify true
git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)

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

这应该让它工作.


Joa*_*ner 3

我已经在环境变量中设置了http代理http_proxyWindows上的Git Bash),但只在我的工作中设置了代理:%HOME%/.gitconfig

[http]
    proxy = http://USERNAME:PASWORD@URL:PORT
Run Code Online (Sandbox Code Playgroud)

  • 环境变量区分大小写,正确小写为“http_proxy”。(有些软件当然可以同时处理两者,但有些则不能!) (2认同)