我经常更换具有不同代理设置的地方,或者只是使用不同的代理从WiFi更改为有线连接。
当我使用OsX时,很容易从网络配置切换到另一个。但是git在 .gitconfig 文件中有自己的设置,我每次都很难修改该文件。
有没有办法将代理(可能是从系统变量?)传递到 .gitconfig 文件,或者有一个设置,如自动检测,< em> system-proxy 或类似的?
答案 0 :(得分:-1)
根据git-config(1)
手册页,git
默认情况下已使用标准http_proxy
环境变量:
http.proxy
Override the HTTP proxy, normally configured using the http_proxy, https_proxy, and all_proxy environment variables (see
curl(1)). This can be overridden on a per-remote basis; see remote.<name>.proxy
因此,如果您在自己的环境中正确设置http_proxy
,则应该全部设置。
更新(针对lingceng)
您可以验证git
是否尊重http_proxy
环境变量,如下所示:
$ export http_proxy=http://proxy.example.com:3128
$ export GIT_CURL_VERBOSE=1
$ git clone http://git.kernel.org/pub/scm/boot/syslinux/syslinux.git
Cloning into 'syslinux'...
* Couldn't find host git.kernel.org in the .netrc file; using defaults
* Trying 10.11.5.35...
* Connected to proxy.example.com (10.11.5.35) port 3128 (#0)
> GET http://git.kernel.org/pub/scm/boot/syslinux/syslinux.git/info/refs?service=git-upload-pack HTTP/1.1
您可以在倒数第二行看到git
连接到代理,而不是直接连接到git.kernel.org
。
答案 1 :(得分:-1)
我处于同样的情况,很遗憾Git没有在OS X上使用系统代理设置。为了简化这一点,我创建了一些允许我启用/禁用代理的Bash功能ssh,npm和代理环境变量等工具的配置。
您可以在此处查看代码(作为我的 Bash-it 分叉的一部分):https://github.com/nwinkler/bash-it/blob/master/plugins/available/proxy.plugin.bash
以下是它的工作原理:
BASH_IT_HTTP_PROXY
。enable_proxy
和disable_proxy
,它们在调用时设置或取消设置环境变量。除此之外,他们还会更新我的~/.npmrc
文件和其他一些位置。在办公室工作时(我必须使用代理服务器),我只需致电enable_proxy
,在家工作时,我会拨打disable_proxy
。
一组类似的功能可以作为单个脚本而不是函数实现,但 Bash-it 框架有一个非常好的方法来定义这样的东西。它工作得很好,我从来不必手动控制环境变量。