我的msysGit(Windows上的Git)在我的家用机器上工作正常,但在工作中,我们在Microsoft ISA代理的后面,当我执行git clone时出现以下错误:
H:\>git clone git://github.com/akitaonrails/vimfiles.git
Initialized empty Git repository in H:/vimfiles/.git/
github.com[0: 65.74.177.129]: errno=Invalid argument
fatal: unable to connect a socket (Invalid argument)
我已尝试将http_proxy环境变量设置为:
http://our-proxy-server:8088
我已经设置了git http.proxy配置指令:
git config --global http.proxy http://our-proxy-server:8088
以上两种情况都没有区别。
使用http://
代替git://
进行git克隆会产生以下结果:
H:\>git clone http://github.com/akitaonrails/vimfiles.git
Initialized empty Git repository in H:/vimfiles/.git/
fatal: http://github.com/akitaonrails/vimfiles.git/info/refs download error - The requested URL returned error: 407
407当然是认证错误。
所以我的问题是:有没有人设法让git在代理后面工作,特别是ISA代理?我不知道是否值得追求这个。非常感谢任何帮助。
谢谢!
答案 0 :(得分:60)
我有完全相同的错误;但~/.gitconfig
global config file是关键。
如果您的代理具有身份验证,则需要输入:
git config --global http.proxy http://login:password@our-proxy-server:8088
它只是有效(使用'git clone http:
')
详细介绍相同设置的博客示例:GIT clone over HTTP: who knew?
如果在407中仍然失败,则可能与git-fetch losing authentication tokens on the second HTTP GET的问题有关。可能需要more recent version of libcurl。
2011年1月更新:jbustamovej在his answer (upvoted)的博客文章“GitHub Behind Corporate Proxy”中提及,其中添加了以下内容:
重要的是要注意如果你的登录名有反斜杠,如
domain\login
,你必须逃避反斜杠,如:
git config --global http.proxy http://domain\\\login:password@our-proxy-server:8088
答案 1 :(得分:19)
即使在配置代理后,您也可能无法连接,因为代理正在禁止git协议流量。在这种情况下,您可能想尝试使用“http”而不是“git”
H:> git clone http://github.com/akitaonrails/vimfiles.git
此外,如果您使用的是自动代理配置文件(.pac),只需在文本编辑器中打开它即可。使用脚本语言非常容易,有一系列条件可以重定向到最有效的代理。找到允许通用流量的通道(通常是最后配置的代理),并按照上面的注释中的说明对其进行配置。
答案 2 :(得分:3)
你有SOCKS代理吗?如果你有,你可以试试 FreeCap 来强化你的git连接。我一直在用这种方式使用git。
如果没有,仍然尝试使用FreeCap。 IIRC它可能能够使用http代理,但我没有尝试过。
编辑: 我通常使用FreeCap来强制 cmd.exe ,从那时起(几乎)我从该会话开始的所有cmdline程序也都被强化了。这就是我推荐Free Cap的原因,因为SocksCap(另一种选择)不会那样工作。
至于使用http.proxy,由于某种原因,我从未使用过mingw版本和我公司的http代理。
答案 3 :(得分:2)
我设法通过一条非常复杂的路线让它工作。方法如下:
令人惊讶的是,它似乎有效,尽管我还没有测试过一切。当然,它将克隆,这是一个开始。
如果有人有更好的解决方案,我会全力以赴。
答案 4 :(得分:1)
答案 5 :(得分:1)
这对我有用:
git config --global http.proxy http://login:password@PROXY_SERVER:PORT
git config --global http.sslVerify false
答案 6 :(得分:0)
我在windows7上遇到了这个问题:
$ git clone git://github.com/facebook/php-sdk.git
Initialized empty Git repository in c:/Users/Jay/temp/php-sdk/.git/
github.com[0: 207.97.227.239]: errno=No error
fatal: unable to connect a socket (No error)
终于意识到它是AVG反病毒软件运行的。我在AVG中禁用了“常驻盾牌”,现在就像一个魅力。
$ git clone git://github.com/facebook/php-sdk.git
Initialized empty Git repository in c:/Users/Jay/temp2/php-sdk/.git/
remote: Counting objects: 223, done.
remote: Compressing objects: 100% (179/179), done.
emote: Total 223 (delta 84), reused 0 (delta 0)
Receiving objects: 100% (223/223), 37.32 KiB, done.
Resolving deltas: 100% (84/84), done.