Git 通过设置 http.proxy 配置参数在代理环境中工作。
对于某些地址,我需要绕过代理。是否有 no-proxy/bypass-proxy 配置参数?
可以在每个远程的基础上覆盖代理 - 请参阅http://git-scm.com/docs/git-config
(查找“http.proxy”和“remote.
git config --add remote.origin.proxy ""
要绕过某些代理(通常是本地地址),您需要做的就是:
export no_proxy=URLToIgnore
其中
URLToIgnore
是您想要 Git
忽略的 URL。
您还可以忽略以某个单词结尾的 URL。
export no_proxy=.mylocal
所有以
.mylocal
结尾的网址都将被忽略。忽略多个 URL:
export no_proxy=.mylocal URLToIgnore
要使其永久化,请将其添加到您的
~/username/.bash_profile
文件中。如果您在用户根目录中找不到 .bash_profile
文件,请手动创建它。
欲了解更多详情: 如何暂时禁用 git http 代理
Windows 用户
已接受的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
现在您将拥有一个存储库来应用已接受的答案。
如果您想将配置设置为空值,请确保您有 Git 2.1.2+,例如
git config --add remote.origin.proxy ""
因为如果您决定恢复该远程代理(此处为“
origin
”)...它会因 2.1.2 之前的 Git(2014 年 9 月 30 日)而出现段错误
参见 提交 c846664 (
tanayabh
)
make config --add
对于空值和 NULL
值目前如果我们有一个像这样的配置文件,
[foo]
baz
bar =
我们尝试类似“
”的操作,Git 会出现段错误。此外,对于“git config --add foo.baz roll
”,它将覆盖原始值,而不是追加到现有的空值之后。git config --add foo.bar roll
问题在于用于模拟
中的--add
的正则表达式,“git_config_set_multivar_in_file()
”,在理想情况下不应与任何字符串匹配,但对于空字符串是正确的。^$
相反,使用像“”这样的正则表达式,它对于任何字符串(无论是否为空)都不为真。a^
要删除段错误,请在
NULL
中的matches()
中添加对config.c
值的检查。
假设您从克隆开始,origin-config 的东西就没那么有用了。当我发现自己处于那个位置时,我就会这么做。
$> no_proxy=$no_proxy,<git-url|ip> git clone ...
请注意,这将针对每个命令。要使刚刚克隆的存储库永久保留此设置,您现在可以转到新克隆的存储库并添加空代理设置。
$> git config --add remote.origin.proxy ""
但是,如果您希望在所有情况下都从代理中排除此主机或 IP,请使用您的 shell 初始化文件为您的用户永久包含您的来源。
我会将以下行放在 .bashrc 的最后
export no_proxy=$no_proxy,<your repo>
我希望这能让事情变得更清楚!
如果您尝试克隆新的存储库,其他答案中给出的某些解决方案将失败,因为 git 抱怨本地文件夹不包含 git 存储库。
在这种情况下,这对我有用
git config --global --add remote.origin.proxy ""
由于 Windows / Unix 用户角色,如果您无法从命令行消除 http_proxy,请尝试此方法 -
git config -l --show-origin
这将根据层次结构打印基于文件的配置。现在转到特定文件(本地 .git/config 文件夹文件)并更新/删除 http_proxy。
希望这有帮助。
没有一个答案可以帮助我解决这个问题。幸运的是,我可以找到一个网站,它为我提供了唯一可行的解决方案:
在项目的根目录中,您可以找到一个隐藏的.git文件夹。在它里面,有一个名为“config”的文件。只需打开它并添加这些行:
[http]
proxy =
[https]
proxy =
更改后我终于可以再次克隆、拉动和推送。
鸣谢:https://collectednotes.com/agusluques/git-commands-ignoring-proxy-on-windows
老问题,但这是如何全局配置的:
git config --global http.proxy proxy.example.com:3128
git config --global http.https://myserver.localdomain.proxy ''
您可以直接修改全局
.gitconfig
文件。C:\Users\[UserName]\.gitconfig
。[http]
sslverify = true
proxy = http://100.100.100.100:8080
[http "https://github.mycompany.net"]
sslverify = false
proxy =
此配置意味着“我通常会在任何地方使用
sseverify=true
和 proxy=http://100.100.100.100:8080
,但是 sslverify=false
和 proxy=
专门用于 https://github.mycompany.net
”。
只需在命令提示符下执行以下命令
git config --global http.proxy [Proxy IP]:[Proxy port]