Git代理旁路

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

对于某些地址我需要绕过代理。 有没有代理/旁路代理​​configuration参数?

代理可以在每个远程的基础上被覆盖 – 参见http://git-scm.com/docs/git-config (查找“http.proxy”和“remote。<name> .proxy”设置)。 假设你有远程的“起源”,那么你可以使用绕过这个远程代理的命令是:

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

为了绕过某些特定的代理,通常是一个本地地址,你所要做的就是:

 export no_proxy=URLToIgnore 

URLToIgnore是你希望Git忽略的URL。 您也可以忽略以某个词结尾的url。

 export no_proxy=.mylocal 

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

 export no_proxy=.mylocal URLToIgnore 

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

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

确保你有一个Git 2.1.2+,如果你想设置一个空值的configuration,比如

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

因为如果你决定恢复这个远程代理(这里是' origin ')… 它将使用比2.1.2更早的Git(2014年9月30日)

见提交c846664 ( tanayabh

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

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

 [foo] baz bar = 

我们尝试类似“ git config --add foo.baz roll ”,Git将会segfault。 而且,对于“ git config --add foo.bar roll ”,它会覆盖原来的值而不是追加现有的空值。

问题出在用于模拟git_config_set_multivar_in_file() ,“ ^$ ”中的git_config_set_multivar_in_file()情况,在理想的情况下,它不应该与任何string匹配,但是对于空string是正确的。
而是使用像“ a^ ”这样的正则expression式,对于任何string都不能为空,否则为空。

要删除segfault,请在config.c中的matches()中添加一个NULL值检查。

在命令提示符下执行下面的命令

 git config --global http.proxy [Proxy IP]:[Proxy port] 
 export http_proxy=http://username:password@ip:port export no_proxy=myhost, myhost:port