通过代理Proxy操作Github代码库

通过代理Proxy操作Github代码库

2019新年伊始感觉社会上的好消息不多。对程序员来说Github宣布私有代码库免费,算是个很振奋人心的好消息了。
应该多感谢微软爸爸的慷慨,这真是个不错的开始。

在国内使用Github的时候,常遇到的问题是速度比较慢,当提交比较多的文件的时候,经常会遇到Github服务器中断的问题。这时候使用代理Proxy来提交代码能获得比较稳定的传输速度和结果。

Compressing objects: 100% (7597/7597), done.
error: RPC failed; result=55, HTTP code = 0 | 535.00 KiB/s   B/s
fatal: The remote end hung up unexpectedly
Writing objects: 100% (7779/7779), 36.00 MiB | 5.46 MiB/s, done.
Total 7779 (delta 856), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly

设置Git全局代理的命令如下:
git config --global http.proxy socks5://127.0.0.1:8080

这里有两点要注意一下:

第一:代理参数永远是http.proxy,不存在什么https.proxy

第二:虽然参数名称是http.proxy但是支持使用不同类似的代理服务器。不同的代理服务器的写法如下:

  • HTTP代理服务器: http://127.0.0.1:8080
  • HTTPS代理服务器: https://127.0.0.1:8080
  • Socks代理服务器: socks://127.0.0.1:8080
  • Socks5代理服务器: socks5://127.0.0.1:8080

如何不想设施Git的全局代理,也可以针对某个remote域名设置代理。
比如只针对github.com的Git代码库使用代理,语法是如下:
git config --global http.https://github.com.proxy socks5://127.0.0.1:8080

那么怎么验证设置的代理设置是否有效呢?git命令并没有输出任何proxy的信息,虽然我在参数里加了一大串的-vvvvv

我的办法是故意吧代理配置错,比如我的代理端口是8080,我故意把端口设置从8111,这样运行git命令的时候一定会出错。出错的时候信息类似这样,至少我知道代理配置是有效的。这时候再把代理配置改正确,基本上就没问题了。

    Failed to connect to 127.0.0.1 port 8111: Connection refused

参考文档

leon

每天进步一点点