Git / Bower错误:退出代码#128和连接失败


86

我正在使用Bower安装几个库。出于演示目的,我正在安装引导程序。无论使用哪种包装,我都会收到以下错误消息:

C:\Scott>bower install bootstrap
bower not-cached    git://github.com/twbs/bootstrap.git#*
bower resolve       git://github.com/twbs/bootstrap.git#*
bower ECMDERR       Failed to execute "git ls-remote --tags --heads git://github
.com/twbs/bootstrap.git", exit code of #128

Additional error details:
fatal: unable to access 'https://github.com/twbs/bootstrap.git/': Failed connect
to github.com:443; No error    

我尝试使用以下解决方案删除第一个错误-从此搜索中发现的第一个错误:

git config --global url."https://".insteadOf git://

但是,这不起作用,该页面上的任何其他解决方案也不起作用。在寻找第二种错误的解决方案时,如果您在公司网络中/防火墙后面,则为代理服务器设置用户名/密码似乎可以解决该问题。但是,我没有像在家用PC /网络(Windows 7 x64)上那样使用代理服务器。

谢谢!

编辑:带有错误的命令窗口:

在此处输入图片说明



npm和https都有类似的问题,并通过以下方式解决了:git config --global url."git@github.com:".insteadOf "https://github.com"
catchantot '18

Answers:


123

我知道这不是“解决”问题,但是您可以使用

git config --global url."https://".insteadOf git://

告诉git使用HTTPS代替GIT,这对我来说可以安装npm依赖项。


9
是我自己,还是对其他人不起作用?对于所有与Bower 128错误有关的搜索,这是Google上最高的结果,并且更改此设置后Bower仍使用git协议。
Bloodyaugust 2014年

1
@Bloodyaugust,它对我也不起作用。仍在使用git://
Logan

1
尽管确实不清楚问题出在哪里,但这确实对我有用。
Mendhak 2014年

也为我工作,我也不知道为什么。@ Bloodyaugust,@ Logan,您是否检查了全局.gitconfig文件(git config --global --edit)?只是,要确保。还有一些更具体的.gitconfig(针对每个用户或针对git项目)可能会覆盖它。
Rafael Eyng 2014年

2
为我工作-我想我尝试在工作机上关闭端口22。所以没有SSH到github :(我可以说我确实从(git)项目文件夹中运行了命令...如果有区别的话
demaniak 2014年

34

而是运行以下命令:

 git ls-remote --tags --heads git://github.com/twbs/bootstrap.git

您应该运行以下命令:

 git ls-remote --tags --heads git@github.com:twbs/bootstrap.git

要么

 git ls-remote --tags --heads https://github.com/twbs/bootstrap.git

或者可以运行,git ls-remote --tags --heads git://github.com/twbs/bootstrap.git但是您需要使git始终以这种方式使用https:

 git config --global url."https://".insteadOf git://

参考:https : //github.com/bower/bower/issues/50


谢谢。我试图强迫git始终使用https,但不确定它是否有效-参见我在原始帖子中附加的图片。无论我尝试使用哪种凉亭安装软件包,仍然会出现错误。
azsl1326 2014年

20

我通过公司网络遇到了这个问题。

这似乎很奇怪,因为我一直在使用ssh与git连接,并且从未遇到过问题。

我尝试了https但没有用,所以我将代理设置添加到git的配置中,一切都很好

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

并确保它起作用

git config --list

谢谢...这也是我的情况。我必须配置git才能使用co。代理..
保罗T.

如果这个工作对你和你正在使用NPM也,你可能需要设置相同的: npm config set proxy http://<your-corporate-proxy>npm config set https-proxy http://<your-corporate-proxy>
aponzani

1
git config http.sslVerify "false"某些公司代理可能也需要。
John Fouhy 2015年

8

端口22在我的计算机上被阻止。一旦找到阻止它的东西并打开端口,我就可以运行bower install cmd而没有任何问题。


tcp / udp的入/出端口22或9418都没有打开阻止我。
kayleeFrye_onDeck

6

好像azsl1326无法在端口9418(git://)上使用Bower(git),然后告诉git使用端口22(https://)代替。这仍然失败,但是随后打开端口22得到了预期的结果。

最直接的解决方案是打开端口9418。这是git://协议使用的端口。


1
我认为这应该是公认的答案,因为这显然是git端口9418被防火墙阻止。至少在带有CSF防火墙的CentOS服务器上就是这种情况。
Christos Lytras

tcp / udp的入/出端口22或9418都没有打开阻止我。
kayleeFrye_onDeck

您的远程仓库在哪里?该服务器是否打开了这些端口?
亨利



3

您在防火墙后面吗?

Git在调用时不会选择代理配置,因此请显式设置环境变量,例如:

export HTTP_PROXY=http://username:password@proxyserver:port/
export HTTPS_PROXY=http://username:password@proxyserver:port/

如果您的公司代理不需要身份验证,则只需省略username:password@URL中的位即可。

它为我工作!


3

如果您所在的国家/地区阻止了github(例如中国大陆),那么您可以建立一个代理(例如使用goagent和gae),然后为git设置代理地址,例如

git config --global http.proxy 127.0.0.1:8087

2

此错误与防火墙的配置错误有关。您会注意到,Bower尝试通过git://协议而非git与git联系http://。您必须打开port 9418。在iptables配置中添加这两行:

iptables -t filter -A INPUT -p tcp --dport 9418 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 9418 -j ACCEPT

这应该可以解决问题。


1

首先,您应该检查Visual Studio命令提示符是否可以识别git命令:工具>命令行

C:\ .... \> git

如果无法识别此命令,则应将git文件夹添加到环境变量中

https://stackoverflow.com/a/26620861/3449657

这就是我所缺少的,并且为我完成了窍门。

希望能帮助到你。


0

在这里添加我的答案,因为这是与我的情况相符的最接近的问题之一。试图安装select2而不是引导程序,但结果是相同的。

bower install select2报告git无法找到目录。使用了

git config --global url。“ https://” .insteadOf git://

配置修复,但是导致(解释为)错误

我不能使用https

我的问题没有解决,因为它涉及魔术。

我试图在命令外壳程序(cmd.exe,Windows)中运行它。我运行了相同的命令,并在powershell中运行了它,它起作用了。 ಠ_ಠ

tl; dr:https://和powershell的组合对我有用


0

我的病毒检查程序隔离了github.com的下载后,我收到了此错误。由于某些未知的原因。

清除这些文件(exe文件)后,一切正常。


0
git config --global url. "https://".insteadOf "git://"  

不是为我工作。所以我找到了这个替代方案:

转到您的临时文件夹。(即,如果您正在使用Windows,则C:\Users\{username}\AppData\Roaming\bower\cache\packages)。在那里您可以看到几个文件。打开它们中的每个,您可以看到URL。将其从更改git://...https://...并保存所有文件。

现在运行bower install


或者,只需运行即可bower cache clean
晚上

0

检查您的git配置设置(git config --global --edit)。就我而言,有一些不再有效的条目,例如:

[core]
gitproxy = gitproxy.cmd
[“ https://”]
[“ https://”]
[url“ https://”]

修改它们并删除(如果您不再需要它们)。


0

您的密码是错误的。只需将它们添加到GitHub / Bitbucket /即可。无非就是您的密钥的权限问题。


0

但是,我没有像在家用PC /网络上那样使用代理服务器

我的家庭网络上也有同样的问题(获取退出代码128),并且确定我没有使用代理。事实证明,Git保存了我过去输入的代理-在配置中四处查看后,我在[http]标签下找到了它。

我是Git的新手,我不确定,这些配置通常是否易于访问-正在使用Tortoise Git,因为我实际上并没有做任何花哨的事情,并且它具有GUI界面。

希望“答案”能有所帮助。


0

在我的情况下是命令执行期间的文件夹访问权限!在Windows上,我首先通过命令行创建了该文件夹:mkdir“ MyFolder”,但出现了错误。但是如果我用鼠标创建文件夹,请右键单击,创建文件夹等。工作正常!


0

如果您正在使用Bitbucket进行身份验证,那么我将收到错误128和连接失败的信息。但是当使用身份验证git hub时,它的工作正常。


0

我知道这是一个老问题,无论如何,让我再添加一件事。

有时(如果您在办公室或专用网络中),网关服务器防火墙会阻止命令终端发出的https请求(端口443)

git config --global url."http://".insteadOf "https://"

使用此配置git以在那些情况下使用HTTP over https


0

这对我有用

复制Git安装文件夹(C:\ Program Files \ Git \ bin \ libcurl.dll)中的文件“ libcurl.dll”。将其粘贴到git.exe所在的位置(C:\ Program Files \ Git \ libexec \ git-core)。


0

运行这两个命令以通过您的系统授予git访问权限

eval `ssh-agent`
ssh-add ~/.ssh/id_rsa

这些命令假设您在远程git服务器(bitbucket / github / other)上具有ssh键


0

我也遇到了这个错误,并通过更新git解决了。当我运行失败的git ls-remote命令时,潜在的错误是正在使用旧的tls版本。因此,git的更新版本使用tls的更高版本。

https://git-scm.com/download/win


0

我在Linux操作系统上发现了此错误。我解决了这个问题1.打开curl日志导出GIT_CURL_VERBOSE = 1 2.克隆git repo 3.找到日志4.我通过更新nss和curl来解决问题(yum update nss nss-util nspr curl)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.