当前位置:  开发笔记 > 编程语言 > 正文

让git与代理服务器一起工作

如何解决《让git与代理服务器一起工作》经验,为你挑选了13个好方法。

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

我需要从git服务器检出代码,每次都显示"Request timed out".我该如何解决这个问题?

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



1> Salim Hamidi..:

要使用的命令:

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

更改proxyuser为您的代理用户

更改proxypwd为您的代理密码

更改proxy.server.com为代理服务器的URL

更改8080为代理服务器上配置的代理端口

如果您决定随时重置此代理并在没有代理的情况下工作:

要使用的命令:

git config --global --unset http.proxy

最后,检查当前设置的代理:

git config --global --get http.proxy


谢谢萨利姆.我的工作没有使用proxyuser:URL中的proxypwd.
@patricK我可以确认使用%40作为@的替代品.似乎一个特殊字符不起作用你应该尝试URL编码它.编码可在此处找到:http://www.w3schools.com/tags/ref_urlencode.asp
@patricK您可以使用`%40`替换用户名/密码字符串中的`@`,但我自己没有测试过.希望能帮助到你.:-)
多谢你们.对我来说,这是基于NTLM的身份验证,只是更新我的.gitconfig不起作用:(.所以我必须得到使用NTLM认证的CNTLM.我所要做的就是将我的CNTLM指向我网络的代理服务器然后指向我的软件更新管理器(如yum,apt-get或ssh)到本地代理.如果是像克隆这样的git操作,请将本地服务器的本地配置代理拉到http.proxy.
您好,如果它具有"@"字符,如何设置proxypass?我知道我必须改变这个角色,但我不知道如何......谢谢

2> alvaro..:

这对我来说很有用,在公司防火墙后面的Windows XP中.

我没有必要从http://code.google.com/p/msysgit/downloads/list?can=3安装除git v1.771之外的任何本地代理或任何其他软件

$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master

proxyuser =我的IT部门分配的代理用户,在我的情况下,它是我用来登录我的PC的同一个Windows用户,即Active Directory用户

proxypwd =我的代理用户的密码

proxy.server.com:8080 =代理名称和端口,我从控制面板,Internet选项,连接,Lan设置按钮,代理服务器部分内的高级按钮获取它,使用第一行(http)行上的服务器名称和端口.

mygithubuser =我用来登录github.com的用户

mygithubpwd =我的github.com用户的密码

repoUser =回购的用户所有者

repoName =回购的名称


似乎对我有用,但当我要求它使用`git://`协议克隆存储库时,git仍然不起作用.
基于对我有用的内容,对pablolic的信息做了几点澄清:1)如果proxyuser是Windows登录,请忽略AD域,只包括没有域的用户名; 2)proxypwd中的空格应编码为"+".例如,"我的密码"应输入为"我的密码".
谢谢,谢谢!git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crt`以及按http://www.simplicidade.org/notes/archives/2011/06/github_ssl_ca_errors.html中所述下载的证书(感谢:http:// stackoverflow。 com / a / 7206627/98528)为我做到了!
@ EdmundYeung99:我建议用%40替换@符号.没试过,但我相信这是标准的URL编码.
@demongolem:我怀疑你可能需要对你的密码进行URL编码(没试过,这只是一个有根据的猜测).请参阅以下答案中的表中的UrlEncoded列:http://stackoverflow.com/a/11236038/216440在您的情况下,这意味着将$替换为%24.

3> PlagueHammer..:

设置一个名为http_proxy值为的系统变量ProxyServer:Port.这是最简单的解决方案.分别https_proxy在评论中指出使用daefu.

设置gitproxy(作为sleske提及)是另一种选择,但这需要一个"命令",这不像上面的解决方案那么简单.

参考文献:http: //bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html


如果您要连接到https-repository,请使用"https_proxy".
@SimonTewsi @explunit虽然HTTP URL需要设置环境变量`http_proxy`,但HTTPS URL需要`https_proxy`.或者,可以为所有URL设置`all_proxy`.请参阅[curl(1)]中的`ENVIRONMENT`部分(https://curl.haxx.se/docs/manpage.html).但是,在设置git-config选项时,`http.proxy`用于HTTP和HTTPS URL.请参阅[git-config(1)]中的`http.proxy`(https://www.kernel.org/pub/software/scm/git/docs/git-config.html).
我需要https_proxy.仅设置http_proxy不允许它克隆HTTPS存储库

4> Randakar..:

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

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

但是,YMMV仅涵盖了命令行配置的第一步.您可能还需要编辑系统git配置,我不知道它们隐藏在哪里.



5> Steve Pitche..:

作为使用的替代方法git config --global http.proxy address:port,您可以在命令行上设置代理:

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

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

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



6> 小智..:

如果您使用的是ubuntu,请执行以下操作...

第1步:安装开瓶器

$ sudo apt-get install corkscrew

第2步:编写名为git-proxy.sh的脚本并添加以下内容

#!/bin/sh

exec corkscrew   $*

#  and  are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*

第3步:使脚本可执行

$ chmod +x git-proxy.sh

步骤4:通过设置环境变量为GIT设置代理命令

$ export GIT_PROXY_COMMAND="//git-proxy.sh"

现在使用git命令,例如

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git



7> Arpit Aggarw..:

由于.gitconfigWindows中有多个文件,因此面临同样的问题,按照以下步骤进行修复:

第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



8> 小智..:

尝试将以下内容放到〜/ .gitconfig文件中:

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://



9> ashutosh..:

对于git协议(git:// ...),安装socat并编写如下脚本:

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

使其可执行,将其放在您的路径中,并在您的~/.gitconfig设置core.gitproxy中添加该脚本的名称.



10> miáo..:

我发现了一些要分享的内容:

git config --global http.proxy http://:

上面的方法不适用于ssh网址(即git@github.com:/.git):

git clone git@github.com:/.git // will not use the http proxy

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

(不是讲英语的人,请在必要时细化我的语言)



11> blacelle..:

除了这些答案,我发现有助于考虑以下两点:

可能需要强制执行身份验证方案:

[http]
    # https://github.com/git/git/blob/master/Documentation/config.txt
    proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm

此外,通常使用NTLM身份验证架构,可能需要明确地提供AD域.

在git bash中:

echo %userdomain%

并相应地更新http.proxy:

git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080

无论如何,通过添加CURL日志可以帮助调查:

export GIT_CURL_VERBOSE=1



12> 小智..:

我在工作中(state / gov)在Windows XP上工作,因此我进行了研究,并在这里找到了它,它很适合我。希望这可以帮助 :)

http_proxy环境变量

如果使用代理服务器或防火墙,则可能需要设置http_proxy环境变量,以便从命令行访问某些URL。示例:在Linux上安装ppm for perl或应用rpm,更新ubuntu

使用代理服务器的主机名或IP地址设置http_proxy变量:http_proxy = http:// [proxy.example.org]

如果代理服务器需要用户名和密码,请以以下形式包括它们:http_proxy = http:// [username:password@proxy.example.org]

如果代理服务器使用的端口不是80,则包括以下端口号:http_proxy = http:// [username:password@proxy.example.org:8080]

Windows XP

    打开控制面板,然后单击系统图标。

    在“高级”选项卡上,单击“环境变量”。

    在“系统变量”面板中单击“新建”。

    添加带有适当代理信息的http_proxy(请参见上面的示例)。

Linux,Solaris或HP-UX

使用特定于您的Shell的命令(例如set或export)设置http_proxy环境变量。要使更改永久生效,请将命令添加到外壳程序的相应配置文件中。例如,在bash中,将以下内容添加到.bash_profile或.bashrc文件中:

    http_proxy = http:// [用户名:密码@主机名:端口];

    导出$ http_proxy



13> fangxing..:

如果你的tsocksproxychains安装和配置,你可以

$ tsocks git clone 

要么

$ proxychains git clone 

使其更短,我创建了一个符号链接/usr/bin/pproxychains,这样我就可以使用它像这样

p git clone 

我可以用它来代理任何命令,

p 

顺便说一句,proxychains长时间未更新,您可能想尝试proxychians-ng

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!