配置git代理

2,094 阅读2分钟

配置git代理

git代理一般会分为两种,一种是走http协议的代理,另一种是走ssh协议的代理。

对于走http协议的代理,我们只需要执行如下命令(端口号根据本地ss配置自行修改):

git config --global http.proxy http://127.0.0.1:1088
git config --global https.proxy http://127.0.0.1:1088

如果要取消代理,则执行如下命令

git config --global --unset http.proxy
git config --global --unset https.proxy

加上如上配置后,对于公司内网的git是无法进行访问的,所以还得把内网的git地址加入到no_proxy环境变量中

export no_proxy="localhost,127.0.0.1,内网git域名"

除了http协议代理,git可能还会走ssh协议,对于ssh协议的配置其实也是类似

编辑ssh config文件

vim ~/.ssh/config

加入如下内容(端口号根据本地ss配置自行修改)

Host github.com
   HostName github.com
   User git
   # 走 HTTP 代理
   # ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1088
   # 走 socks5 代理(如 ss)
   ProxyCommand nc -v -x 127.0.0.1:1086 %h %p

注意此处使用的是socks5代理,而http/https协议配置的是http代理,至此就完成了git的代理配置

配置终端http/https代理

除了git需要配置代理之外,其实还需要配置终端http/https代理,因为源码下载过程中除了用git去下载源码外,还会借用python去下载一些zip文件,以及使用cipd下载一些文件,使用这些工具的时候,在终端中可能无法正常完成对应文件的下载。

因为这部分代理使用场景不多,全局共两处

src/tools/dart/update.py src/tools/buildtools/update.py 为了尽可能的不污染全局环境,我们进行临时的环境变量导出(端口号根据本地ss配置自行修改)。

export http_proxy=http://127.0.0.1:1088
export https_proxy=http://127.0.0.1:1088

完成以上配置后,源码同步过程会变得十分顺畅,而不用进行漫长的等待。