如何让Git使用代理服务器?

我需要从Git服务器签出代码,但它每次都显示“请求超时”。我该怎么解决这个问题呢?

或者如何设置代理服务器?


当前回答

在不知疲倦地尝试这个页面上的每个解决方案后,我的工作是使用SSH密钥代替!

打开Git Bash ssh-keygen.exe -t rsa -C 打开你的Git提供商(Github, Bitbucket等) 添加复制id_rsa。pub文件内容到Git提供者的输入页面(检查您的配置文件)

其他回答

我注意到一些事情,想在这里分享:

git config --global http.proxy http://<proxy address>:<port number>

上述方法不适用于SSH url(即git@github.com:<用户名>/<项目名>.git):

git clone git@github.com:<user name>/<project name>.git // will not use the http proxy

如果我们将SSH设置为HTTPS端口(https://help.github.com/en/articles/using-ssh-over-the-https-port),事情也不会改变,因为它只改变了SSH连接连接的端口(默认为22)。

作为使用git配置的替代方案——global http。代理地址:端口,可以在命令行设置代理:

git -c "http.proxy=address:port" clone https://...

优点是代理不需要持久设置。在Bash下你可以设置一个别名:

alias git-proxy='git -c "http.proxy=address:port"'

如果配置代理服务器的命令行方式不起作用, 你可能只需要编辑.gitconfig(在你的配置文件的根目录中,它可能隐藏在C:\Documents and Settings和一些网络驱动器中)并添加以下内容:

[http]
    proxy = http://username:password@proxy.at.your.org:8080

但是,YMMV只包含命令行配置的第一步。你可能也需要编辑系统git配置,我不知道他们把它藏在哪里。

下面是代理设置

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>

因为在windows中有多个.gitconfig文件而面临同样的问题,遵循以下步骤来修复相同的问题:

步骤1:打开Git BASH

步骤2:查找.gitconfig,执行以下命令:

git config --list --global --show-origin

步骤3:在.gitconfig中复制以下内容:

[http]
    proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
    sslverify = false
[https]
    proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
    sslverify = false
[url "http://github.com/"]
    insteadOf = git://github.com/

[user]
    name = Arpit Aggarwal
    email = aggarwalarpit.89@gmail.com