最近似乎 经常需要在git上下载东西
网上各种找了找解决方案 记录一下
-
用git代替http
例如: git clone https://github.com/ry/tensorflow-vgg16 换成 git clone git://github.com/ry/tensorflow-vgg16
-
Ubuntu终端使用ss代理
参考自该处
安装proxychainssudo apt install proxychains
编辑配置文件
sudo gedit /etc/proxychains.conf
在最后一行加上
socks5 127.0.0.1 1080
注销重新登录
使用 ,在命令前加上proxychains即可
例如:proxychains curl www.google.com
-
用ssh代替http(还没实践,好像要下个proxifier这个软件 )
git clone ssh://github.com/ry/tensorflow-vgg16
优势是可以使用私玥登录并且和环境代理保持独立。
给 SSH 配置代理的方法是打开 ProxyCommand 选项,比如:Host github.com User git ProxyCommand /usr/bin/nc -x 127.0.0.1:8088 %h %p IdentityFile ~/.ssh/id_rsa
把上面这段写进 ~/.ssh/config 文件(因为用到私玥认证所以带了 IdentityFile 选项)这里 127.0.0.1:8088 是一个 SOCKS5 代理,SSH 会通过 nc 命令打开的管道连接到 GitHub。nc 支持用 -X 指定 SOCKS4、SOCKS5、HTTPS 代理协议,参见 manpage。
-
作为一枚屌丝程序猿,翻墙工具必不可少。目前来看,shadowsocks 是不二选择。 这里简单介绍下 ubuntu 下运行 shadowsocks 的方法。
sudo apt-get install python-pip sudo pip install shadowsocks sudo ssserver -p <port> -k <password> -m rc4-md5 --user nobody -d start
port 和 password 根据需要填写。记得防火墙里开放该监听的 port。 然后在自己机上上安装 shadowsocks 客户端,设置 PAC,开始爽歪歪吧。
-
开始 clone,如果觉得仓库太大,可以在 git clone 中加入参数 –depth=1,只拉取最近的一个 revision。
参考知乎一个用户的回答
git clone --depth=1 https://github.com/torvalds/linux.git
如果后面想看历史的版本,那么也很好办,使用 git fetch 即可。
git fetch --unshallow
-
用 git 内置代理,直接走系统中运行的代理工具中转 。(
这个方法暂时无用
,遇到Failed to connect to 127.0.0.1 port 1080: Connection refused这个错误,然而解决方案竟然是取消代理,所以相当于没有配置一样)
参考自该处,帮助理解
最终是按照这篇博文实施的
你的 SS 本地端口是 1080(一般port均为1080),那么可以如下方式走代理:(
不推荐直接用全局代理
因为如果挂了全局代理,这样如果需要
克隆coding之类的国内仓库,会奇慢无比
所以建议使用这条命令,只对github进行代理,对国内的仓库不影响)在终端操作:
git config --global http.https://github.com.proxy https://127.0.0.1:1080 git config --global https.https://github.com.proxy https://127.0.0.1:1080 https://127.0.0.1:1080 这里的协议可能是http协议 也可能是socks协议,按照自己的更改 设置全局代理 git config --global http.proxy socks5://127.0.0.1:1080 git config --global https.proxy socks5://127.0.0.1:1080 取消全局代理 git config --global --unset http.proxy git config --global --unset https.proxy 查看代理 git config --global http.proxy git config --global https.proxy
查看配置信息修该,有一些是之前配置的,这个是设置了全局代理
sudo gedit ~/.gitconfig
-
git clone或者git push特别慢,并不是因为
http://github.com
的这个域名被限制了。而是
http://github.global.ssl.fastly.Net
这个域名被限制了。那么可以在hosts文件里进行绑定映射。(个人感觉蛮有效的)
参考自该处
sudo gedit /etc/hosts 然后在文件上面 插入下面这两行 151.101.72.249 http://global-ssl.fastly.Net 192.30.253.112 http://github.com
-
用国内的码云服务器(没尝试过,先记录一下)