适用于Windows的Git - 通过https克隆失败

时间:2018-02-19 06:15:47

标签: git git-for-windows

更新 2018-02-26

ssh工作。

我仍然有兴趣知道https来电失败的原因。

有关通过https进行克隆的下一步搜索方面的任何帮助? (不能使用ssh,端口被阻止)

OS

Windows Server 2012 R2标准版

安装位置

C:\ Program Files \ Git

命令

$ git clone -b <branch_name> https://<PAT>@<company>.visualstudio.com/... <directory>
Cloning into '<directory>'...
fatal: unable to access 'https://<company>.visualstudio.com/...': error setting certificate verify locations:
  CAfile: /mingw64/ssl/certs/ca-bundle.crt
  CApath: none

我可以cat来自Git bash的证书

cat /mingw64/ssl/certs/ca-bundle.crt

git config

$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager

不存在~/.gitconfig个文件

尝试使用git -c http.sslVerify=false clone ...仍然失败: (我知道这不安全)

fatal: unable to access 'https://<PAT>@<company>.visualstudio.com/...': error setting certificate verify locations:
  CAfile: /mingw64/ssl/certs/ca-bundle.crt
  CApath: none

看起来它还在尝试阅读证书?!

所有命令都在Git Bash中运行,无论是否有管理权限,都没有改变结果。用户是高级服务帐户。相同的配置和安装适用于同一操作系统的测试服务器,并安装位置。

3 个答案:

答案 0 :(得分:0)

我曾经遇到过同样的问题

首先,我建议您重新安装您的GIT客户端。这可能会解决您的问题,但如果您在卸载每个临时/配置文件时不小心删除每个临时/配置文件,也可能会导致其他问题。

重新安装后,我的GIT不再工作了:

以下内容来自this回答: 重新安装git for windows后出现此问题。我在Windows 10上使用git for Windows 64位。

我发现安装程序不再在C:/Users/[USER_NAME]/AppData/Local/Programs/Git中安装git。而是安装它 C:\Program Files\Git

然而,安装程序未编辑旧的配置文件C:\ProgramData\Git\config。此文件仍包含旧路径,因此我手动编辑它。

E.g。在我使用的系统上

[http]
     sslCAInfo = C:/Programme/Git/mingw64/ssl/certs/ca-bundle.crt

也许您必须使用Program Files代替

     sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

答案 1 :(得分:0)

当我错误地将http代理设置为https地址时,我得到完全相同的错误。您可以通过运行git config --list来检查它。

我有那样的条目:

http.proxy=https://myproxy.com:8080

而不是:

http.proxy=http://myproxy.com:8080

答案 2 :(得分:0)

在Git-2.16.2-64-bit

上遇到此问题

降级为Git-2.15.0-64位

问题消失了。