VS 2019 Git 连接到 bitbucket 超时

VS 2019 Git timeout connecting to bitbucket

我全新安装了 Visual Studio 2019(版本 16.2.5)社区版。我选择了 git 进行源代码控制并安装了 Bitbucket 扩展(通过它我可以很好地登录。)但是,每当我尝试克隆或提取现有的 repo 时,我都会收到以下错误(没有提示凭据):

"Git failed with a fatal error. Unable to access '[my repo]': Failed to connect to bitbucket.org on port 443: Timed out."

当我尝试使用 Git 克隆 Windows 时,我也遇到了错误。我的 VS 2015 CE 似乎仍然可以很好地与 Bitbucket 交互。

谷歌搜索这个问题我找不到太多参考 VS2019,虽然有很多 VS2017。我已经尝试了这个 (https://developercommunity.visualstudio.com/content/problem/4833/git-failed-with-a-fatal-error.html) 中的第一个和第三个解决方案(尽管不是第二个,因为它是超时错误,与 SSL 无关。)我还尝试从 Credential Manager 中删除所有与 Bitbucket 相关的凭据。

我能看到的唯一其他线索是,如果我尝试更新 VS 中的 git 全局设置,它不会从我的用户目录中的 gitconfig 文件中获取任何内容并尝试保存更改会导致它抱怨 'C:\windows\system32.gitconfig' 上的权限被拒绝。我不知道为什么它会期望这里有一个配置文件。

感谢收到任何想法!

这个一个proxy/SSL问题!

我按照 this 建议启用 git 跟踪日志记录,并确定了 git 来自 运行 的位置及其关联的 git 配置文件。我更新了这个文件以指向我们的代理和 lo,我们开始收到不同的错误消息。

但是。 我们使用企业自签名证书,如果我将 git 设置为使用 schannel (http.sslBackend = schannel) 然后我得到这个错误:

schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.

如果将其设置为 openssl 我明白了:

SSL certificate problem: unable to get local issuer certificate

更多谷歌搜索。显然,推荐的方法是使用 openssl 并将您的证书导出到本地商店。这对我来说很好,但我需要这个工具被团队的其他人采用。所以我采用了推荐的方法 here,并在配置中添加了 http.schannelcheckrevoke = false .)

至此,我的商店里到处都是 git 和 git 配置文件的版本,因此有必要进行一些清理工作。我按照 this advice 让 VS 为 Windows 使用最新版本的 Git,一旦它是我就可以使用 git 命令提示符和 git config --list --show-origin 以确定从何处获取什么配置。

一旦完成,我就能够在 VS2019 中成功克隆我的存储库。