Windows 下 git 设置代理服务器

本贴最后更新于 1954 天前,其中的信息可能已经水流花落

Windows 下 git 设置代理服务器

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

Git 支持四种协议 1 ,而除本地传输外,还有:git://, , 基于 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

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

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

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

  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 685 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 6 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6551 引用 • 29424 回帖 • 246 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 2 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 443 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    103 引用 • 294 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖 • 1 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    4 引用 • 55 回帖 • 8 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    82 引用 • 122 回帖 • 621 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 42 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 71 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    40 引用 • 24 回帖
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 399 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 636 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 174 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    180 引用 • 447 回帖 • 1 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 247 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 2 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 513 关注