Git代理绕过

yan*_*isf 47 git proxy http

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

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

小智 70

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

git config --add remote.origin.proxy ""
Run Code Online (Sandbox Code Playgroud)

  • 这会编辑工作副本中的.git/config文件,这意味着您首先需要在未设置代理的情况下克隆存储库.克隆后,您可以重置代理,按照Jan发布的那样运行命令,然后可以拉动和推送,而不必再担心它. (8认同)
  • 我不起作用,它仍然连接到代理,但没有凭据。 (2认同)
  • 我收到“git:错误:参数数量错误,应该是 2” (2认同)

Yas*_* T. 27

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

export no_proxy=URLToIgnore
Run Code Online (Sandbox Code Playgroud)

URLToIgnore您要Git忽略的URL 在哪里.您还可以忽略以特定字词结尾的网址.

export no_proxy=.mylocal
Run Code Online (Sandbox Code Playgroud)

所有以ur结尾的网址.mylocal都将被忽略.要忽略多个网址:

export no_proxy=.mylocal URLToIgnore
Run Code Online (Sandbox Code Playgroud)

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

有关更多详细信息: 如何临时禁用git http代理

  • 这很有用,但没有提到它仅对 Linux(也许也对 Mac)有效,但对 Windows 无效。用户的环境变量对于 git 的工作方式是否与 .bash_profile 相同? (4认同)

Gan*_*ala 7

对于 Windows 用户

接受的答案要求 git repo 在工作之前存在,第二个最佳答案仅适用于 linux 和 Mac。因此,在 Windows 中使其适用于https://git-url.com/project/repo-name.git在命令提示符中尝试以下操作

set no_proxy=git-url.com
Run Code Online (Sandbox Code Playgroud)

然后

git clone git-url.com/repo-name.git
Run Code Online (Sandbox Code Playgroud)

现在您将有一个回购来应用接受的答案。


Von*_*onC 5

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

git config --add remote.origin.proxy ""
Run Code Online (Sandbox Code Playgroud)

因为如果你决定恢复该遥控器的代理(这里是origin'),它将使用早于2.1.2的Git(2014年9月30日)进行段错误

请参阅commit c846664(tanayabh)

make config --add对于空NULL值和值,表现正确

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

[foo]
        baz
        bar =
Run Code Online (Sandbox Code Playgroud)

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

问题在于用于模拟--addin的git_config_set_multivar_in_file()"正则表达式^$",在理想情况下,它应该与任何字符串不匹配,但对于空字符串则为真.
而是使用像" a^"这样的正则表达式,对于任何字符串都不是真的,空的或不是.

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