我有一些我在公共github.com工作的回购,需要代理服务器。
我在防火墙后面的Enterprise Github实例中有其他存储库,并且在定向到我们的代理时会失败。
管理多个代理需求的最佳方法是什么?我可以使用git config --global
并将http.proxy
和https.proxy
密钥设置为代理以获取github.com repos连接,但是然后Enterprise Github被破坏了,我必须清除这些密钥才能获得它再次运作。
如何在不手动更改代理的情况下管理需要不同代理设置的这两个来源?我每次切换项目时都会使用脚本吗?
答案 0 :(得分:1)
正如我在“Only use a proxy for certain git urls/domains?”中解释的那样
,您可以仅为github.com
设置代理。
但在你的情况下,我会坚持使用经典的HTTP(S)_PROXY
环境变量(不需要git config
命令)
只需在您的私有Git托管服务器的域中添加NO_PROXY
环境变量,当从所述私有服务器克隆/推送/拉出时,Git将不会使用该代理。
set NO_PROXY=.myserver.org
答案 1 :(得分:1)
从the link VonC gave to this question开始,我能够将正确的命令组合在一起,但这些答案非常复杂(有时难以理解正确的语法),所以我想我会在这里巩固我的答案后人:
一种解决方案是仅为代理设置github.com:
> git config --global http.https://github.com.proxy http://[user:pass@]<proxy URL>:<port>
> git config --global https.https://github.com.proxy http://[user:pass@]<proxy URL>:<port>
这看起来有点时髦,因为您将https://github.com
嵌入正常http.proxy
语句的中间。这是您创建附加到特定站点的代理的方式。
或者,您可以为所有站点配置代理,然后仅为您的内部Github站点删除代理:
> git config --global http.proxy http://[user:pass@]<proxy URL>:<port>
> git config --global https.proxy http://[user:pass@]<proxy URL>:<port>
这会将代理应用于所有内容,然后执行以下操作以告知Git不要为您的内部Git站点使用代理:
> git config --global http.<Git Site URL>.proxy ""
> git config --global https.<Git Site URL>.proxy ""
完全限定的域名在哪里,例如http://github.mycompany.com
- 您要在浏览器中键入的内容。
http://proxy:port
和https://proxy:port
的代理地址必须为http.proxy
,而非https.proxy