git如何通过网络工作? (代理)

时间:2014-10-13 11:59:41

标签: git proxy

我想知道git push是如何运作的。我在代理后面,甚至在我的PhpStorm软件中配置它也不起作用。

所以,我想知道它是如何通过网络发送的,我想使用端口80用于HTTP,443用于HTTPS。

我在SO上阅读了一堆线程,但无法弄清楚那里有什么问题。 我猜“我的”代理没有按照此处的说明启用 WebDAV Can't push to github through proxy

但我想知道是否还有其他任何问题可以解决问题,知道所有端口都已关闭,除了80,22和443。

git remote -vv
origin  https://Vadorequest@bitbucket.org/Vadorequest/vadorequest.git (fetch)
origin  https://Vadorequest@bitbucket.org/Vadorequest/vadorequest.git (push)

解决方案:

非安全代理(http)

如果代理不安全,则可以使用以下命令对其进行配置:

git config --global http.proxy http://user:password@host:port

并使用以下命令禁用它:

git config --global --unset-all http.proxy

安全代理(https)

git config --global https.proxy https://user:password@host:port

并使用以下命令禁用它:

git config --global --unset-all https.proxy

请注意,如果您使用的是Windows并使用 TortoiseGit ,则可以从软件本身设置代理设置。 (网络标签)

如果您正在使用 Cygwin ,请注意,如果您设置全局配置,则仅为当前环境设置。 (使用cmd.exe将其设置为Windows,但使用cygwin控制台将仅为cygwin设置它)

因此,如果您通过IDE(PhpStorm,WebStorm)使用Git,请确保在IDE使用的环境中设置配置,否则它将无效。

还要注意,如果您在git设置中设置了代理,并且您不在代理之后,那么它也不会起作用。 :您已将其设置为正常工作且工作正常,但是当您在家中使用它时,它在以前工作时不再起作用)

3 个答案:

答案 0 :(得分:9)

如果您的代理允许在没有用户和密码的情况下进行访问,则可以使用:

git config --global https.proxy https://proxy.company.com:8888

如果您的代理需要用户&密码然后:

git config --global https.proxy https://user:password@proxy.company.com:8888

请务必将8888替换为您的真实代理端口 请务必将proxy.company.com替换为您的真实代理服务器名称或IP地址。

告诉我这是否有帮助。

答案 1 :(得分:2)

如果您在ntlm代理后面需要指定域名,用户名和密码,我建议使用cntlm。您只需要使用代理凭据配置cntlm,然后在git config命令中使用localhost:3128。

答案 2 :(得分:1)

为避免每次对不同的存储库使用以下命令:

git config --global https.proxy https://proxy.company.com:8888

将环境变量设置如下,并进行冷却:

export https_proxy=https://username:password@proxy_ip:port