visual studio之前就一直出现的git的代理问题,我今天终于知道解决办法了。
问题分析
众所周知,由于网络环境问题,github最好挂上代理。于是乎,我设置了如下socks代理:
1 | git config --global http.proxy 'socks5://127.0.0.1:8888' |
然后在visual studio
同步就出问题了:
1 | 正在打开存储库: |
最骚的是错误还分为两个部分,这就很有意思了。
1 | NotSupportedException encountered. |
首先呢,是一个疑似代理不支持的错误,提示信息还部分乱码,在网上找了好久之后发现了错误的完整信息。
1 | fatal: NotSupportedException encountered. |
根据博主描述,这个问题可能在三个方面:
1 | 配置了本地的 socks5 的代理(Shadowsocks 之类的代理软件) |
于是乎我大概懂得了这两个错误的原因。
我在clone到本地时使用的是https,这个可以从visual studio的设置部分看到。由此导致了使用socks5代理错误,然后不知为何,在发生错误后,visual studio好像再次试图通过https访问,但是未读取到我的用户名,也不知是代理导致的网络问题,还是其他的错误。
解决方法
这个问题有两个解决办法,就是两种git clone的方式而已。
使用ssh代理
生成公私钥,然后配置github的ssh密钥访问,在visual studio中clone时填入ssh的url,就是git开头的那个。代理配置socks5://
即可。
注意这里有个问题,代理可不是跟原来一样设置http.proxy,原来的设置只是http和https的代理而已,这里需要设置ssh的代理,创建并修改C:\Users\用户名\.ssh\config
文件以添加ssh代理配置(这里只是针对github,如果是全局的话,可以去掉Host的限制):
1 | Host github.com |
这样就搞定了ssh代理配置。
使用http代理
使用http代理就很简单了。clone库时选择https的url,代理需要更换为http://
的代理,就是我之前设置的那样,只不过将socks5协议换成http
1 | git config --global http.proxy 'http://127.0.0.1:8889' |
芜湖,起飞。