Ubuntu提高git上项目clone速度

最近似乎 经常需要在git上下载东西
网上各种找了找解决方案 记录一下

  1. 用git代替http

    例如:
    git clone https://github.com/ry/tensorflow-vgg16
    换成
    git clone git://github.com/ry/tensorflow-vgg16
    
  2. Ubuntu终端使用ss代理
    参考自该处
    安装proxychains

    sudo apt install proxychains
    

    编辑配置文件

    sudo gedit /etc/proxychains.conf
    

    在最后一行加上

    socks5 127.0.0.1 1080
    

    注销重新登录

    使用 ,在命令前加上proxychains即可
    例如:

    proxychains curl www.google.com
    
  3. 用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。

  4. 作为一枚屌丝程序猿,工具必不可少。目前来看,s 是不二选择。 这里简单介绍下 ubuntu 下运行 s 的方法。

    参考知乎一个用户的回答

    	sudo apt-get install python-pip 
        sudo pip install s 
        sudo ssserver -p  -k  -m rc4-md5 --user nobody -d start 
    

    port 和 password 根据需要填写。记得防火墙里开放该监听的 port。 然后在自己机上上安装 s 客户端,设置 PAC,开始爽歪歪吧。

  5. 开始 clone,如果觉得仓库太大,可以在 git clone 中加入参数 --depth=1,只拉取最近的一个 revision。
    参考知乎一个用户的回答

     git clone --depth=1 https://github.com/torvalds/linux.git
    

    如果后面想看历史的版本,那么也很好办,使用 git fetch 即可。

    git fetch --unshallow
    
  6. 用 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
    

    Ubuntu提高git上项目clone速度_第1张图片

  7. 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
    
  8. 用国内的码云服务器(没尝试过,先记录一下)
    Ubuntu提高git上项目clone速度_第2张图片
    Ubuntu提高git上项目clone速度_第3张图片

你可能感兴趣的:(Ubuntu)