zoukankan      html  css  js  c++  java
  • Windows下git设置代理服务器

    SVN中,使用TortoiseSVN来进行版本控制时,设置代理非常简单,只需要在设置里面添加代理的信息即可。而 git 在GUI(v0.17.GITGUI)中却无法找到类似的设置,只能求助 git bash 来设置。

    Git支持四种协议 1 ,而除本地传输外,还有:git://, ssh://, 基于HTTP协议,这些协议又被分为哑协议(HTTP协议)和智能传输协议。对于这些协议,要使用代理的设置也有些差异:

    1. 使用 git协议 时,设置代理需要配置 core.gitproxy
    2. 使用 HTTP协议 时,设置代理需要配置 http.proxy
    3. 而是用 ssh协议 时,代理需要配置ssh的 ProxyCommand 参数

    由于个人需求仅仅是HTTP的代理(相对来说,HTTP有比较好的通适性,Windows配置git/ssh比较棘手),设置的时候,只需要针对单个设置 http.proxy 即可,在需要使用代理的项目下面使用 git bash 如下命令进行设置 ——你的Uri和port可能和我的不同,你懂的。:

    git config http.proxy http://127.0.0.1:8088  # 也可以是uri:port形式

    这个是不需要鉴权的代理设置,如果需要鉴权,可能需要添加用户名密码信息:

    git config http.proxy http://username:password@127.0.0.1:8088

    如果git的所有项目都需要启用代理,那么可以直接启用全局设置:

    git config --global http.proxy http://127.0.0.1:8088

    为了确认是否已经设置成功,可以使用 --get 来获取:

    git config --get --global http.proxy

    这样可以看到你设置在global的 http.proxy 值。 

    需要修改的时候,再次按照上面的方法设置即可,git默认会覆盖原有的配置值。

    当我们的网络出现变更时,可能需要删除掉原有的代理配置,此时需要使用 --unset 来进行配置:

    git config --global --unset http.proxy

    在命令之后,指定位置的设置值将会被清空,你可以再次使用 --get 来查看具体的设置情况。

    如果使用了HTTPS,肯呢个会碰到HTTPS 证书错误的情况,比如提示: SSL certificate problem 。。。,此时,可以尝试将 sslVerify 设置为 false :

    git config --global http.sslVerify false

    恩,到此,可以试试git来获取/更改项目了,此时,项目应该是使用代理来进行通讯的。

    后记:

    1. 如果非必要,一般不使用 --global 的方式来设置代理,毕竟代理有的时候访问一些项目比直接访问还慢,特别是当代理在国外,项目源在国内的时候,按需使用才是王道。
    2. 不要多次使用不同的参数来设置代理,一般使用文中两种方式酌情选用即可, --global , --system , --local 各级设置后,可能会给自己带来不必要的麻烦。git默认是先到git Repository的配置文件中查找配置文件,如果没有才会到 --global设置的文件中查找,因此,单个项目文件中的设置会覆盖 --global 的设置。
    3. 使用 --global 来配置的信息保存在当前用户的根目录下的 .config 文件中,而仓库中的配置保存在项目仓库的根目录下的 .git/config 文件中。
    4. 如果是Linux的用户,再使用 git/ssh协议 时,根据网上的说法,需要使用 connect

      工具来做代理的转换。—— 本人Linux下的暂时没有配置git使用代理,暂时无法验证,摘录方法如下:

      GIT协议配置:安装完毕 connect 之后,你可以在特定的目录中建立一个 socks5_proxy_wrapper (或其他的文件名亦可),然后文件内容改为:

      #!/bin/sh
      connect -S 127.0.0.1:8088 "$@"

      而后即可以配置git了,设置 gitproxy :

      git config core.gitproxy /path/to/socks5_proxy_wrapper
      
      # 路径要改

      抑或 export GIT_PROXY_COMMAND :

      export GIT_PROXY_COMMAND="/path/to/socks5_proxy_wrapper"

      SSH协议配置,同样需要建立一个文件,假设命名为: socks5_proxy_ssh ,文件内容为:

      #!/bin/sh
      ssh -o ProxyCommand="/path/to/socks5_proxy_wrapper %h %p" "$@"

      配置git使用该文件:

      export GIT_SSH="/path/to/socks5_proxy_ssh"

      亦可配置" ~/.ssh/config "中的 ProxyCommand 。

      HTTP协议配置,这里直接使用 http.proxy 设置成 socks5 即可:

      git config http.proxy socks5://127.0.0.1:8088

      如果要全部使用HTTP代理,可以将上面的 socks5_proxy_wrapper 文件设置为:

      #!/bin/sh
      connect -H 192.168.1.100:8080 "$@"

      其他保持不变即可。而 http.proxy 设置同本文设置即可.

  • 相关阅读:
    Java中的Java.lang.ThreadLocal类
    Java中线程的生命周期和状态
    Circular Linked List数据结构
    Linked List数据结构
    JVM如何工作
    JVM运行时数据区域
    queue数据结构
    stack数据结构
    Java中Set/HashSet的内部处理
    POJO,JavaBean 以及他们之间的区别
  • 原文地址:https://www.cnblogs.com/mymelody/p/6132728.html
Copyright © 2011-2022 走看看