Git 通过设置 http.proxy 配置参数在代理环境中工作。
对于某些地址,我需要绕过代理。是否有无代理/绕过代理配置参数?
代理可以在每个远程的基础上被覆盖-参见 < 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。
URLToIgnore
Git
export no_proxy=.mylocal
以 .mylocal结尾的所有 URL 将被忽略。要忽略多个 URL:
.mylocal
export no_proxy=.mylocal URLToIgnore
要使其永久化,请将其添加到 ~/username/.bash_profile文件中。如果在用户根目录中找不到 .bash_profile文件,则手动创建它。
~/username/.bash_profile
.bash_profile
更多细节: 如何暂时禁用 git http 代理
如果要将配置设置为空值,请确保有一个 Git 2.1.2 + ,如
因为如果您决定恢复该远程(这里是‘ origin’)的代理... ... 它将使用超过2.1.2的 Git 进行分段(2014年9月30日)
origin
见 提交 c846664(tanayabh)
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 --add foo.baz roll”的操作,Git 会自动分段。此外,对于“ git config --add foo.bar roll”,它将覆盖原始值,而不是追加现有的空值。
git config --add foo.baz roll
git config --add foo.bar roll
问题在于用于在 git_config_set_multivar_in_file()“ ^$”中模拟 --add的 regexp,在理想情况下,它不应该与任何字符串匹配,但对于空字符串则为 true。 相反,使用“ a^”这样的 regexp,它对于任何字符串(无论是否为空)都不能为真。
git_config_set_multivar_in_file()
^$
--add
a^
要删除 Segfault,请在 config.c中的 matches()中检查 NULL值。
config.c
matches()
只需在命令提示符下执行以下命令即可
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>
我希望这能让事情变得更清楚!
这是一个老问题了,但我们应该如何在全球范围内配置它:
git config --global http.proxy proxy.example.com:3128
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