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

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

我需要从git服务器检查代码,它每次显示“请求超时”。 我如何解决这个问题?

另外,我怎样才能设置代理服务器?

使用命令:

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080 
  • proxyuser更改为您的代理用户
  • proxypwd更改为您的代理密码
  • proxy.server.com更改为您的代理服务器的URL
  • 8080更改为代理服务器上configuration的代理端口

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

使用命令:

 git config --global --unset http.proxy 

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

 git config --global --get http.proxy 

这对我来说,在企业防火墙后面的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部门分配的,在我的情况下,它与我用来login我的PC的Active Directory用户

proxypwd =我的代理用户的密码

proxy.server.com:8080 =代理服务器的名称和端口,我从控制面板,Internet选项,连接,局域网设置button,代理服务器部分内的高级button,使用第一个(http)行的服务器名称和端口。

mygithubuser =我用来login到github.com的用户

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

repoUser =回购的用户所有者

repoName =回购的名称

设置一个名为http_proxy的系统variables,其值为ProxyServer:Port 。 这是最简单的解决scheme。 分别使用https_proxy作为daefu在评论中指出的。

设置gitproxy(与sleske提到的一样)是另一种select,但是这需要一个“命令”,这不像上述解决scheme那样简单。

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

如果configuration代理服务器的命令行方式不起作用,那么可以编辑.gitconfig(在configuration文件的根目录中,这可能会同时隐藏在C:\ Documents and Settings和一些networking驱动器中)并添加:

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

但是,YMMV只包含命令行configuration的第一步。 你可能也必须编辑系统的gitconfiguration,我不知道他们把它藏在哪里。

如果您使用的是Ubuntu,请执行以下操作…

第1步:安装开瓶器

 $ sudo apt-get install corkscrew 

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

 #!/bin/sh exec corkscrew <name of proxy server> <port> $* # <name_of_proxy_server> and <port> are the ip address and port of the server # eg exec corkscrew 192.168.0.1 808 $* 

第3步:使脚本可执行

 $ chmod +x git-proxy.sh 

步骤4:通过设置环境variables来设置GIT的代理命令

 $ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh" 

现在使用git命令,比如

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

作为使用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"' 

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

 #!/bin/sh exec socat - socks4:your.company.com:$1:$2 

使其可执行,把它放在你的path,并在~/.gitconfig设置core.gitproxy为该脚本的名称。

尝试把下面的文件放到〜/ .gitconfig文件中:

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

我在工作(州/政府)在Windows XP上工作,所以我做了我的研究,发现这里 ,它为我工作。 希望这可以帮助 :)

http_proxy环境variables

如果您使用代理服务器或防火墙,则可能需要设置http_proxy环境variables才能从命令行访问某个url。 例子:在perl上安装ppm或者在linux上应用rpm,更新ubuntu

使用代理服务器的主机名或IP地址设置http_proxyvariables: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

  1. 打开控制面板,然后单击系统图标。
  2. 在高级选项卡上,单击环境variables。
  3. 在系统variables面板中单击新build。
  4. 用适当的代理信息添加http_proxy(见上面的例子)。

Linux,Solaris或HP-UX

设置http_proxy环境variables使用特定于您的shell的命令(例如设置或导出)。 要使此更改持久化,请将该命令添加到适当的shell的configuration文件中。 例如,在bash中,向你的.bash_profile或.bashrc文件添加如下所示的行:

  1. http_proxy = http:// [用户名:密码@主机名:端口];
  2. 导出$ http_proxy

面对同样的问题,因为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 

在terminal上设置git代理

如果

  • 你不需要手动设置每个git项目的代理,一个接一个
  • 总是希望对所有项目使用相同的代理

全局设置一次

 git config --global http.proxy username:password@proxy_url:proxy_port git config --global https.proxy username:password@proxy_url:proxy_port 

如果你只想为一个git项目设置代理(可能有一些情况下,你可能不希望使用相同的代理或任何代理的一些git连接)

 //go to project root cd /bla_bla/project_root //set proxy for both http and https git config http.proxy username:password@proxy_url:proxy_port git config https.proxy username:password@proxy_url:proxy_port 

如果你想显示当前的代理设置

 git config --list 

如果你想全球删除代理

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

如果你想删除代理只有一个Git根

 //go to project root cd /bla-bla/project_root git config --unset http.proxy git config --unset https.proxy 

如果您安装并configuration了tsocks代理链 ,则可以

 $ tsocks git clone <you_repository> 

要么

 $ proxychains git clone <you_repository> 

对于Windows用户:如果git configset http_proxy=不起作用, 这个答案可能有所帮助:

http://replacegit仓库的git://协议。 注意,你必须首先设置http_proxy