在有条件的情况下, 设置代理能为我们节省很多时间, 让我们开始
- 
连接情况总览 1.1 如果远程仓库的格式像下面这样, 这种就是使用 HTTP或HTTPS协议连接到Git仓库的情况http://github.com/xxx-xxx/xxxx.git https://github.com/xxx-xxx/xxxx.git1.2 如果远程仓库的格式像下面那样, 这种就是使用 SSH协议连接到Git仓库的情况git@github.com:xxx-xxx/xxxx.git ssh://git@github.com/xxx-xxx/xxxx.git
- 
使用 HTTP或HTTPS协议连接到Git仓库的代理方法2.1 针对 所有 域名的 Git仓库# http/https 协议, port 需与代理软件设置一致 git config --global http.proxy http://127.0.0.1:port # socks5 协议 git config --global http.proxy socks5://127.0.0.1:port- —-global选项指的是修改- Git的全局配置文件- ~/.gitconfig,而非各个- Git仓库里的配置文件- .git/config.
- port则为端口.
 2.2 针对特定域名的- Git仓库
 # http/https 协议 git config --global http.url.proxy http:127.0.0.1:port # 以 GitHub 为例 git config --global http https://github.com proxy http://127.0.0.1:port # SOCKS5 协议 git config --global http.url.proxy socks5://127.0.0.1:port # 以 GitHub 为例 git config --global http.https://github.comproxy socks5://127.0.0.1:port注意: - url即为需要走代理的仓库域名,- url以- http://和- https://打头的均用这个方法。
- 网上很多中文教程,可能会告诉你https://打头的url使用git config --global https.https://ecample.proxy protocol://127.0.0.1:port,这种做法其实是错误的!记住一点:Git不认https.proxy,设置http.proxy就可以支持https了。
- 如果想了解url的更多模式, 如子域名等的情况, 可参照Git的官方文档, 网页内容搜索http..*, 即可找到相关信息.
 
- 
使用 SSH协议连接到Git仓库的代理方法Git依靠ssh处理连接, 为了通过代理进行连接, 必须配置ssh本身, 在~/.ssh/config文件中设置ProxyCommand选项.Linux和macOS是通过nc来执行ProxyCommand的,Windows下则是通过connect.3.1 Linux和macO用户3.1.1 编辑 ~/.ssh/config文件, 给文件加上如下对应内容# http 代理 Host github.com User git ProxyCommand nc -X connect -x 127.0.0.1:port %h %p(但是我的 macOS的相关配置是在/Users/mac/.gitconfig里面)# 配置指定域名 socks5 代理 [http "https://github"] com = socks5://127.0.0.1:1090 # 配置全局 http 代理 [http] proxy = http://127.0.0.1:41091解释: - Host后面接的- github.com是指定要走代理的仓库域名;
- 在 ProxyCommand中,Linux和macOS用户用的是nc;
- -X选项后面接的是- connect, 意思是- HTTPS代理;
- -X选项后面加上代理地址和端口号;
- 在调用 ProxyCommand时,%h和%p将会被自动替换为目标主机名和SSH命令指定的端口(%h和%p不要修改, 保留原样即可).
 3.1.2
 # SOCKS5 协议 # 两种方式任选一个 # 第一种 Host github.com User git ProxyCommand nc -X 5 -x 127.0.0.1:port %h %p # 第二种 Host github.com User git ProxyCommand nc -x 127.0.0.1:port %h %p解释: - Host后面接的- github.com是指定要走代理的仓库域名;
- 在 ProxyCommand中,Linux和macOS用户用的是nc;
- 在调用 ProxyCommand时,%h和%p将会被自动替换为目标主机名和SSH命令指定的端口(%h和%p不要修改, 保留原样即可).
- 如果 -X选项后面接的是数字5, 那么指的就是socks5代理
- 当然不写上-X选项也是可以的, 因为在没有指定协议的情况下,默认是使用socks5代理的, 所以两种写法效果都一样, 都指的是走socks5代理
 3.2Windows用户
 编辑 ~/.ssh/config文件,给文件加上如下对应内容,windows的~路径一般是C:\Users\用户名, 可在git bash中输入cd ~进入~目录, 再用pwd命令显示当前路径.# HTTP 代理 Host github.com User git ProxyCommand connect -H 127.0.0.1:port %h %p # SOCKS5 代理 Host github.com User git ProxyCommand connect -S 127.0.0.1:port %h %p解释: - Host后面接的- github.com是指定要走代理的仓库域名;
- 在 ProxyCommand中,windows用户用的是connect;
- -H选项的意思是- HTTP代理;
- -S选项指的就是- socks5代理;
- 在调用 ProxyCommand时,%h和%p将会被自动替换为目标主机名和SSH命令指定的端口(%h和%p不要修改, 保留原样即可).
 
- 
取消 git config --globl --unset http.proxy git config --global --unset https.proxy
 
       
       
         
          
评论区