给git加代理

有时候由于科学上网、下载速度慢等原因,需要去给git添加代理实现加速。

举例:【已解决】github.io的git的push非常慢

此处和Git的代理相关的操作有:

  • 查看代理
  • 设置代理=添加代理
  • 取消代理

下面详细解释如何操作:

注:假如要设置的代理地址是:socks5://127.0.0.1:1086

  • 查看(当前是否使用)代理
    • 查看本地代理
      • 方式
        • 命令行
          git config http.proxy
          
        • 配置文件方式
          cat .git/config
          
      • 结果
        • 可以看到:是否有http部分,http中是否有proxyproxy是否为空
    • 查看全局代理
      • 方式
        • 命令行
          git config --global http.proxy
          
        • 配置文件方式
          cat ~/.gitconfig
          
      • 结果
        • 可以看到:是否有http部分,http中是否有proxyproxy是否为空
  • 设置(添加)代理
    • 设置本地代理
      • 方式
        • 命令行
          git config http.proxy socks5://127.0.0.1:1086
          
        • 配置文件
          vi .git/config
          
          • 加上:httpproxy的值是socks5://127.0.0.1:1086
            [http]
              proxy = socks5://127.0.0.1:1086
            
    • 设置全局代理
      • 方式
        • 命令行
          git config --global http.proxy socks5://127.0.0.1:1086
          
        • 配置文件
          vi ~/.gitconfig
          
          • 加上:httpproxy的值是socks5://127.0.0.1:1086
            [http]
              proxy = socks5://127.0.0.1:1086
            
  • 取消代理
    • 取消本地代理
      • 方式
        • 命令行
          git config --unset http.proxy
          
        • 配置文件
          vi .git/config
          
          • 方式1:去掉httpproxy
            [http]
            
          • 方式2:设置proxy值是
            [http]
              proxy =
            
    • 取消全局代理
      • 方式
        • 命令行
          git config --global --unset http.proxy
          
        • 配置文件
          vi ~/.gitconfig
          
          • 方式1:去掉httpproxy
            [http]
            
          • 方式2:设置proxy值是
            [http]
              proxy =
            

背景知识

关于自己电脑中可以使用的代理

本地电脑中可以使用的代理,往往是像我一样,开启了科学上网的工具(SS/SSR/Trojan等),所以有了:

  • (默认开启的)Socks5代理
    • 举例:socks5://127.0.0.1:1086
      • 自己Mac中的ShadowsocksX-NGR1.4.4-R8 (1)
        • 高级设置->本地Sock5监听 地址和端口,分别是127.0.0.11086
          • mac_ss_advanced_settings
          • ss_local_socks5_config
        • 所以Socks5的代理地址就是:
          • socks5://127.0.0.1:1086
  • (默认没开启,要自己手动开启的)http代理
    • 举例:http://127.0.0.1:1087
      • 自己Mac中的ShadowsocksX-NGR1.4.4-R8 (1)
        • HTTP代理设置->勾选HTTP代理开启,以及HTTP代理监听地址和端口,分别是127.0.0.11087
          • mac_http_proxy_settings
          • http_proxy_config_addr_port
        • 所以http的代理地址就是:
          • http://127.0.0.1:1087

注意事项

git的代理没有https的proxy,只有http的proxy

后经git官网证实:

  • 结论:只有http的proxy,没有https的proxy
  • 解释
    • (很多人)以为
    • 其实:此处http.proxy中的
      • http:指的是HTTP协议,包括http和https的网址
      • proxy:指的是代理,都加上代理
    • 所以:
      • 即使是( https://github.comhttps://gitee.com 等)https的git的url地址,也是http的proxy,而不是https的proxy
      • 没有
        • 命令行中的写法
          git config https.proxy
          
        • 配置文件
          • 包括
            • 本地的:.git/config
            • 全局的:~/.gitconfig
          • 中的写法
            [https]
              proxy = xxx
            
      • 只有
        • 命令行中的写法:
          git config http.proxy
          
        • 配置文件
          • 包括
            • 本地的:.git/config
            • 全局的:~/.gitconfig
          • 中的写法
            [http]
              proxy = xxx
            

特殊设置

单独针对某些git仓库=url 单独启用代理 或者 单独不用代理

举例:只给GitHub启用代理,其他不用代理

注:GitHub的地址是: https://github.com

  • 命令行方式
    • 本地代理
      git config http.https://github.com.proxy socks5://127.0.0.1:1086
      
    • 全局代理
      git config --global http.https://github.com.proxy socks5://127.0.0.1:1086
      
  • 配置文件方式
    • 编辑配置文件
      • 本地
        vi .git/config
        
      • 全局
        vi ~/.gitconfig
        
    • 文件内容
      [http "https://github.com"]
        proxy = socks5://127.0.0.1:1086
      

举例:其他全部启用代理(包括github),而gitee不用代理

  • 命令行方式
    • 本地
      git config http.proxy socks5://127.0.0.1:1086
      git config http.https://gitee.com.proxy ''
      
    • 全局
      git config --global http.proxy socks5://127.0.0.1:1086
      git config --global http.https://gitee.com.proxy ''
      
  • 配置文件方式
    • 编辑配置文件
      • 本地
        vi .git/config
        
      • 全局
        vi ~/.gitconfig
        
    • 文件内容
      [http]
        proxy = socks5://127.0.0.1:1086
      [http "https://gitee.com/"]
        proxy =
      

results matching ""

    No results matching ""