Git代理绕过

时间:2013-05-14 08:28:22

标签: git http proxy

Git通过设置http.proxy配置参数在代理环境中工作。

对于某些地址,我需要绕过代理。是否有无代理/绕过代理配置参数?

8 个答案:

答案 0 :(得分:67)

可以基于每个远程覆盖代理 - 请参阅http://git-scm.com/docs/git-config (查找“http.proxy”和“remote。< name> .proxy”设置)。假设你有一个名为“origin”的遥控器,那么你可以用来绕过这个遥控器的代理的命令是:

git config --add remote.origin.proxy ""

答案 1 :(得分:26)

要绕过某些特定的代理,通常是本地地址,您需要做的就是:

export no_proxy=URLToIgnore

URLToIgnore是您希望Git忽略的网址。  您也可以忽略以特定字词结尾的网址。

export no_proxy=.mylocal

.mylocal结尾的所有网址都会被忽略。忽略多个网址:

export no_proxy=.mylocal URLToIgnore

要使其永久化,请将其添加到~/username/.bash_profile文件中。如果在用户根目录中找不到.bash_profile文件,请手动创建它。

了解更多详情: How to temporarily disable git http proxy

答案 2 :(得分:5)

如果要将配置设置为空值,请确保您拥有Git 2.1.2+,例如

git config --add remote.origin.proxy ""

因为如果您决定恢复该遥控器的代理(此处为“origin”)... ,它将使用早于2.1.2的Git(2014年9月30日)进行段错误

请参阅commit c846664tanayabh

make config --add对空和NULL

的行为正确
  

目前,如果我们有一个配置文件,

[foo]
        baz
        bar =
  

我们尝试类似“git config --add foo.baz roll”之类的内容,Git将会出现段错误。此外,对于“git config --add foo.bar roll”,它将覆盖原始值,而不是在现有空值之后附加。

     

问题在于用于在--add中模拟git_config_set_multivar_in_file()的正则表达式,“^$”,在理想情况下,它不应与任何字符串匹配,但对于空字符串则为真。登记/>   而是使用像“a^”这样的正则表达式,对于任何字符串都不是真的,空的或不是。

     

要删除段错误,请在config.cNULL中添加对matches()值的检查。

答案 3 :(得分:3)

可接受的answer要求git repo存在,然后才能工作,次佳的answer仅适用于Linux和Mac。因此,要在Windows中使其适用于 https://git-url.com/project/repo-name.git ,请在命令提示符下尝试以下操作

set no_proxy=git-url.com

然后

git clone git-url.com/repo-name.git

现在,您将有一个仓库来应用接受的答案。

答案 4 :(得分:1)

由于Windows / Unix用户角色,如果无法从命令行中删除http_proxy,请尝试这种方法-

git config -l --show-origin

这将根据层次结构基于文件显示当前配置。现在转到特定文件(本地.git / config文件夹文件)并更新/删除http_proxy。

希望这会有所帮助。

答案 5 :(得分:0)

假设您要从克隆开始,那么origin-config并不是那么有用。当我发现自己处于那个位置时,我会做。

$> no_proxy=$no_proxy,<git-url|ip> git clone ...

请注意,这将针对每个命令。要使此永久性仅适用于刚刚克隆的存储库,您现在可以转到新克隆的存储库并添加empty-proxy设置。

$> git config --add remote.origin.proxy ""

但是,如果在所有情况下都希望将此主机或IP排除在代理之外,请使用shell初始化文件对用户永久包含源。

我将以下行放在.bashrc最后

export no_proxy=$no_proxy,<your repo>

我希望这可以使事情变得更清楚!

答案 6 :(得分:0)

老问题,但这里是如何全局配置:

  1. 设置代理:
git config --global http.proxy proxy.example.com:3128
  1. 通过将特定 URL 的代理设置为空字符串来关闭特定 URL 的代理(将 myserver.localdomain 替换为您的服务器 FQDN):
git config --global http.https://myserver.localdomain.proxy ''

答案 7 :(得分:-3)

在命令提示符下执行以下命令

git config --global http.proxy [Proxy IP]:[Proxy port]