有些时候由于连不上git服务器而我们又需要推送代码,这时就需要设定git代理服务器。
1,http和https代理
如果说使用的是项目http或者https地址,就配置http与https代理即可,输入以下命令:
git config --global http.proxy "socks5://地址:端口"git config --global https.proxy "socks5://地址:端口"
例如设定本地代理:
git config --global http.proxy "socks5://127.0.0.1:1080"git config --global https.proxy "socks5://127.0.0.1:1080"
这样使用git clone/push/pull所有http或者https地址项目都会走代理。
还可以使用下面命令取消代理设置:
git config --global--unset http.proxy git config --global--unset https.proxy
2,ssh代理设定
如果说项目使用的ssh地址,那么就需要配置ssh代理。
我们需要编辑ssh的配置文件,位于用户文件夹下的.ssh文件夹下。
- Windows ssh配置文件路径:
C:\Users\你的用户名\.ssh\config
- Linux ssh配置文件路径:
/home/你的用户名/.ssh/config
使用文本编辑器打开配置文件config
加入下列配置:
Windows系统:
ProxyCommand connect -S 代理地址:端口 %h %p
Linux系统:
ProxyCommand nc -X connect -x 代理地址:端口 %h %p
如果说.ssh文件夹不存在或者config文件不存在就自己创建一个。
配置好了,ssh就会走代理了。
上面是配置全局走代理,事实上一般只需要为指定网址配置代理,例如只为github配置代理,就在配置文件加入:
Windows系统:
Host github.com ProxyCommand connect -S 代理地址:端口 %h %p
Linux系统:
Host github.com ProxyCommand nc -X connect -x 代理地址:端口 %h %p
Host后面接的就是指定要走代理的地址,可以接多个地址例如:
Windows系统:
Host github.com gitlab.com ProxyCommand connect -S 代理地址:端口 %h %p
Linux系统:
Host github.com gitlab.com ProxyCommand nc -X connect -x 代理地址:端口 %h %p
可见多个地址使用空格隔开放在Host后面即可,这个例子就是同时指定ssh访问github和gitlab时走代理。
例如配置ssh访问github走本地代理:
Windows系统:
Host github.com ProxyCommand connect -S 127.0.0.1:1080 %h %p
Linux系统:
Host github.com ProxyCommand nc -X connect -x 127.0.0.1:1080 %h %p