首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何绕过我使用git配置设置的http.proxy?

如何绕过我使用git配置设置的http.proxy?
EN

Stack Overflow用户
提问于 2017-01-03 08:58:44
回答 3查看 7.8K关注 0票数 8

背景

我有的工作电脑,我偶尔会在家里随身携带。现在,我们有了一个代理服务器,我已经将git配置为通过执行git config --global http.proxy http://proxy.company.com来使用它。因此,当我回到家时,我不需要代理,所以我需要取消http.proxy。如果我必须偶尔做一次的话,这是可以的,但是现在我需要每天都这样做:设置代理,当我到达工作时,回家,取消代理,第二天重新设置它。

我需要什么

一种绕过每个命令中单独设置的http.proxy的方法。类似于--no-proxy选项:

代码语言:javascript
运行
复制
git --no-proxy pull

我不想在每个命令中指定代理,例如:

代码语言:javascript
运行
复制
git --proxy=http://proxy.company.com

因为我工作时做的git比在家做的要多。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-03 09:37:10

您可以完全按照您的要求使用

代码语言:javascript
运行
复制
git -c http.proxy= clone https://github.com/foo/bar.git

这将将代理设置为此命令的空值,因此不使用代理。

如果不是克隆,而是抓取、推送、拉等等,那么还可以向存储库添加两个遥控器,然后相应地设置remote.<name>.proxy。然后你在工作时用一个遥控器,在家用另一个遥控器。由于提交是相同的,所以即使提交在不同的远程跟踪分支上,也不必下载两次。

票数 20
EN

Stack Overflow用户

发布于 2017-01-03 09:51:10

我不确定它是否适合您的需要,但您可以这样设置特定urls的代理:

代码语言:javascript
运行
复制
[http "<matching url>"]
    proxy = <url>

例如:我在工作中支持代理,并希望访问github上的项目,因此我在~/.gitconfig中添加了以下部分(注意,我在匹配url时使用了假用户名" proxy“):

代码语言:javascript
运行
复制
[http "https://proxy@github.com/"]
    proxy = https://10.144.1.10:8080/

从现在开始,每当我想要访问任何没有代理的服务器时,我都会一如既往地这样做。当我想通过代理访问服务器时,我会在前面添加假的“代理”用户名。

当我在代理后面时,这会停止,但是不这样做:

代码语言:javascript
运行
复制
$ git clone https://github.com/project/path.git

这将在代理后面工作:

代码语言:javascript
运行
复制
$ git clone https://proxy@github.com/project/path.git

要使fetchpullpush工作--您需要添加2个远程处理程序(一个用于代理,一个没有代理)并相应地使用。

票数 3
EN

Stack Overflow用户

发布于 2017-01-03 09:51:26

我通过编写一个简单地通过设置http.proxy配置变量来打开和关闭代理的Bash脚本来解决类似的情况:

代码语言:javascript
运行
复制
#!/bin/sh

proxy="http://host:port"

if [[ $(git config --global http.proxy) ]]; then
    git config --global --unset http.proxy
    echo "Git is not using a proxy"
else
    git config --global http.proxy $proxy
    echo "Git is using the proxy at $proxy"
fi

我调用了脚本flip_git_proxy并将其放在路径中。现在,每次启动新的Bash会话时,我只需运行:

在工作中:

代码语言:javascript
运行
复制
$ flip_git_proxy
Git is using the proxy at http://host:post

在家里:

代码语言:javascript
运行
复制
$ flip_git_proxy
Git is not using a proxy
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41439747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档