Windows下git使用代理服务器的设置方法
在我朝独有的无敌GFW关照下(当然,也有可能IP被网站封了),要下载网络上开源的软件是非常困难的一件事情,在这种情况下,使用VPN或者代理服务器就非常有必要了。对于单个应用翻墙来说,个人比较喜欢用翻墙代理。
SVN中,使用TortoiseSVN来进行版本控制时,设置代理非常简单,只需要在设置里面添加代理的信息即可。而 git 在GUI(v0.17.GITGUI)中却无法找到类似的设置,只能求助 git bash 来设置。
Git支持四种协议 1 ,而除本地传输外,还有:git://, ssh://, 基于HTTP协议,这些协议又被分为哑协议(HTTP协议)和智能传输协议。对于这些协议,要使用代理的设置也有些差异:
- 使用
git协议时,设置代理需要配置core.gitproxy - 使用
HTTP协议时,设置代理需要配置http.proxy - 而是用
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来获取/更改项目了,此时,项目应该是使用代理来进行通讯的。
后记:
- 如果非必要,一般不使用
--global的方式来设置代理,毕竟代理有的时候访问一些项目比直接访问还慢,特别是当代理在国外,项目源在国内的时候,按需使用才是王道。 - 不要多次使用不同的参数来设置代理,一般使用文中两种方式酌情选用即可,
--global,--system,--local各级设置后,可能会给自己带来不必要的麻烦。git默认是先到git Repository的配置文件中查找配置文件,如果没有才会到--global设置的文件中查找,因此,单个项目文件中的设置会覆盖--global的设置。 - 使用
--global来配置的信息保存在当前用户的根目录下的.config文件中,而仓库中的配置保存在项目仓库的根目录下的.git/config文件中。 - 如果是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设置同本文设置即可.
参考:
- git文档中指明服务器上的Git协议有:Local, HTTP, Secure Shell(SSH) and Git.
- 使用
git config --help查看设置帮助 - Linux配置一节是来自
segmentfault,权利归作者所有,本文作为个人博客,以备后用,如若不妥请告知。
Windows下git使用代理服务器的设置方法的更多相关文章
- 解决windows下git push卡住问题的方法
问题描述: 在windows下向使用git协议传输的Git Repo进行push时会卡住. -- 这是windows上的msysgit的bug,在新版本上已经修复,但要在.gitconfig中做一项配 ...
- Windows下Git中正确显示中文的设置方法
Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...
- windows下git的使用方法(码云)
这表文章主要是用了可视化操作: 使用命令行操作:https://www.cnblogs.com/mswyf/p/9370238.html 一.安装Git Bash 为了在windows下使用Git,我 ...
- Windows下Git使用报错:warning:LF will be replaced by CRLF in ××××.××
Windows下Git使用报错: warning:LF will be replaced by CRLF in ××××.××(文件名) The file will have its original ...
- Windows下mysql忘记密码的解决方法
Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...
- Windows下Git服务器搭建[转]
Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...
- Windows下GIT安装与使用(上传远程端)
Windows下GIT安装与使用(上传远程服务器) 1. 登陆http://msysgit.github.io/并下载Git 2. 打开下载的exe文件,一路默认(路径可以去修改).有可能电脑需要 ...
- Windows下Git Bash中VIM打开文件中文乱码
Windows下Git Bash中VIM打开文件中文乱码,解决方法是: 步骤一 admin@DESKTOP-O99620V MINGW64 /d/项目GGE/Hard_for_GGE (master) ...
- 图解Windows下 GIT GUI 使用教程
https://jingyan.baidu.com/article/19020a0a7ae6af529c284248.html 本篇经验将和大家介绍Windows下 GIT GUI 使用教程,希望对大 ...
随机推荐
- 简单几何(求划分区域) LA 3263 That Nice Euler Circuit
题目传送门 题意:一笔画,问该图形将平面分成多少个区域 分析:训练指南P260,欧拉定理:平面图定点数V,边数E,面数F,则V + F - E = 2.那么找出新增的点和边就可以了.用到了判断线段相 ...
- UVa1401 Remember the Word(DP+Trie树)
题目给定一个字符串集合有几种方式拼成一个字符串. dp[i]表示stri...strlen-1的方案数 dp[len]=1 dp[i]=∑dp[j](stri...strj-1∈SET) 用集合的字符 ...
- AngularJS 表单提交后显示验证信息与失焦后显示验证信息
虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...
- jQuery Select操作大集合
jQuery获取Select选择的Text和Value: 语法解释: $("#select_id").change(function(){//code...}); //为S ...
- BZOJ 1856 字符串(组合)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1856 题意:有n个1和m个0组成的串,使得任意前k个中1的个数不少于0的个数.有多少种这 ...
- SVN提交提示:working copy is not up-to-date解决方法
解决方法: 在相应文件上,单击选择team,然后选择先更新,然后再提交.这样就好了.
- httpclient爬取性感美图
依赖httpclient4.2,Jsop SemeiziCrawler.java package kidbei.learn.crawler; import java.io.File; import j ...
- Quartz与Spring整合进行热部署的实现(一)
先来几张实现图 任务管理页 新建任务管理.目前实现叫简单的需求...若各位同学要实现复杂的设计...quartz都有提供强大的支持.小弟目前的需求做到这已经够用了. 接下来.我们如何实现quartz的 ...
- Asp反向代理程序,调用远程站点全站数据,一款脚本级反向代理程序.
前些天临时写的一脚本级反向代理程序,用法很简单,设置好目标站地址,然后放到你网站根目录:index.asp,再将404页面自定义为:index.asp,即可. 由于暂时没有 url 替换需要,所以没有 ...
- Excel操作类
'引入Excel的COM组件 Imports System Imports System.Data Imports System.Configuration Imports System.Web Im ...