Git 代理旁路

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

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

119924 次浏览

代理可以在每个远程的基础上被覆盖-参见 < a href = “ http://git-scm.com/docs/git-config”> http://git-scm.com/docs/git-config (查找“ http.xy”和“ remote”。< 名称 > 。设定)。假设您拥有称为“ source”的远程控制器,那么您可以使用以下命令绕过该远程控制器的代理:

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

要绕过某个(通常是本地地址)代理,您只需要:

export no_proxy=URLToIgnore

其中 URLToIgnore是您希望 Git忽略的 URL。 也可以忽略以某个单词结尾的 URL。

export no_proxy=.mylocal

.mylocal结尾的所有 URL 将被忽略。要忽略多个 URL:

export no_proxy=.mylocal URLToIgnore

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

更多细节: 如何暂时禁用 git http 代理

如果要将配置设置为空值,请确保有一个 Git 2.1.2 + ,如

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

因为如果您决定恢复该远程(这里是‘ origin’)的代理... ... 它将使用超过2.1.2的 Git 进行分段(2014年9月30日)

提交 c846664(tanayabh)

对于空值和 NULL值,make config --add的行为正确

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

[foo]
baz
bar =

然后我们尝试类似“ git config --add foo.baz roll”的操作,Git 会自动分段。此外,对于“ git config --add foo.bar roll”,它将覆盖原始值,而不是追加现有的空值。

问题在于用于在 git_config_set_multivar_in_file()^$”中模拟 --add的 regexp,在理想情况下,它不应该与任何字符串匹配,但对于空字符串则为 true。
相反,使用“ a^”这样的 regexp,它对于任何字符串(无论是否为空)都不能为真。

要删除 Segfault,请在 config.c中的 matches()中检查 NULL值。

只需在命令提示符下执行以下命令即可

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

由于 Windows/Unix 用户角色的原因,如果您不能从命令行中删除 http _ agent,请尝试这种方法-

git config -l --show-origin

它将根据层次结构打印基于文件的现有配置。现在转到特定的文件(本地。Git/config 文件夹文件)并更新/删除 http _ proxy。

希望这个能帮上忙。

适用于 Windows 用户

接受 回答需要 git 回购存在之前的工作和第二个最好的 回答工程只有在 linux 和 Mac。因此,在窗口中,为了让它为 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳 https://git-url.com/project/repo-name.git工作,请在命令提示符下尝试以下操作

set no_proxy=git-url.com

那么

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

现在你将有一个回购申请接受的答案。

假设您是从克隆开始的,那么 source-config 就没那么有用了。当我发现自己处于那种境地时,我会这么做。

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

注意,这将是每个命令。为了使刚克隆的回购永久化,您现在可以转到新克隆的回购并添加空代理设置。

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

但是,如果您希望在所有情况下都将此主机或 IP 排除在代理之外,请使用 shell init-file 为您的用户永久地包含您的起源。

我会在.bashrc 中最后放下一行

export no_proxy=$no_proxy,<your repo>

我希望这能让事情变得更清楚!

这是一个老问题了,但我们应该如何在全球范围内配置它:

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

如果您试图克隆一个新的回购,其他答案中给出的一些解决方案将会失败,因为 git 抱怨本地文件夹不包含 git 存储库。

在这种情况下,这对我有用

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

没有一个答案可以帮助我解决这个问题。幸运的是,我找到了一个网站,它为我提供了唯一可行的解决方案:

在项目的根目录中,可以找到隐藏的。Git 文件夹。在它里面,有一个名为“ config”的文件。打开它,加上这几行:

[http]
proxy =
[https]
proxy =

改变之后,我可以立即克隆,拉,再推。

来源: https://collectednotes.com/agusluques/git-commands-ignoring-proxy-on-windows