源起
当你在以下情况下,本文可能对你访问git有用
- 在某个的神秘局域网内
- 在外出差,需要访问公司内网
检查环境,先确认是不是已经有代理了
执行git config 检查当前环境
git config --list
笔者电脑上显示
credential.helper=osxkeychain
user.name=Philip Zhang
user.email=zhangxilai@doublechaintech.com
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
core.editor=vi
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
OK,里面没有发现有代理http_proxy, 我们需要启动一个代理,最简单的方式是使用SSH, 在Windows系统下面也可以使用putty, 我们在本机1080端口设置一个代理
设置一个代理服务器
Mac/Linux下
ssh -f -N -D 127.0.0.1:1080 ubuntu@<remoteip>
Windows下
参考 http://securitymusings.com/article/462/how-to-set-up-a-socks-proxy-using-putty-ssh
在git下使用这个代理
git config --global http.proxy socks5://127.0.0.1:1080
验证是否设置成功
git config --list
得到
...
http.proxy=socks5://127.0.0.1:1080
...
设置成功
测试
使用正常命令如 git clone, git pull 等来测试效果