Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在corporate proxy Node.js后面访问Github_Node.js_Git_Cordova_Proxy_Phonegap Plugins - Fatal编程技术网

在corporate proxy Node.js后面访问Github

在corporate proxy Node.js后面访问Github,node.js,git,cordova,proxy,phonegap-plugins,Node.js,Git,Cordova,Proxy,Phonegap Plugins,我在从cmd调用以下命令以安装PhoneGap时遇到问题: npm install -g phonegap 返回以下错误: Failed to connect to github.com port 443: Timed out 关于这个主题有很多问题,它们似乎都提供了相同的答案-确保配置了git和nodejs的代理设置。我设置了节点代理设置,如下所示: npm config set proxy http://proxyname:8080 npm config set https-proxy

我在从
cmd
调用以下命令以安装PhoneGap时遇到问题:

npm install -g phonegap
返回以下错误:

Failed to connect to github.com port 443: Timed out
关于这个主题有很多问题,它们似乎都提供了相同的答案-确保配置了
git
nodejs
的代理设置。我设置了
节点
代理设置,如下所示:

npm config set proxy http://proxyname:8080
npm config set https-proxy http://proxyname:8080
对于
git

git config --global http.proxy http://proxyname:8080
git config --global https.proxy http://proxyname:8080
git config--list
npm config list
都确认这些代理设置已就位

我还允许程序通过防火墙进入
Windows防火墙
->
允许程序或功能通过Windows防火墙
。然后我为
node.js
选择了
node.exe
,为
git
选择了
git.exe


然而,我仍然有一个问题,即它无法连接到Github。还有什么我遗漏或忘记设置的吗?Node.js和Git都是第一次为该任务安装的

除上述设置外,如果一些下载的库使用
git://
协议而不是
https://
声明其依赖关系,则可能会出现此错误。这些依赖关系通常会因上述错误而失败

要解决此问题,可以运行以下操作:

git config --global url."https://".insteadOf git://
这将向Git添加一个配置选项,要求Git在URL使用
Git://
协议时使用
https


此设置为我修复了许多代理问题。

您需要将代理身份验证添加到您的命令应用程序中。我假设您在windows中工作,以下内容对我很有用(我不需要将代理添加到npm或git,除非运行git命令)

在活动命令窗口中,每个会话(包括初始安装、添加设备或插件)和第一次应用程序构建时,您都需要这些命令中的一个或两个:

设置https\u代理=

设置http\U代理=

所以我的看起来像这样:

设置https\u代理=

Ben

使用git 2.8(2016年3月),您不必在url中以明文形式嵌入密码

参见(2016年1月26日)作者。
帮助人:、和。
(于2016年2月3日被合并)

http
:使用凭据API处理代理身份验证 目前,将代理凭据传递给curl的唯一方法是将它们包含在代理URL中。通常,这意味着它们最终将以某种方式(通过包含在
~/.gitconfig
、shell配置文件或历史记录中)在磁盘上未加密。
由于代理身份验证通常使用域用户,因此凭据可能是安全敏感的;因此,需要一种更安全的凭证传递方式

如果配置的代理包含用户名而不是密码,请查询 一个人的凭证API。此外,请确保我们批准/拒绝代理凭据 对。 因此:

除了curl所理解的语法之外,还可以指定一个带有用户名但没有密码的代理字符串,在这种情况下,git将尝试以与其他凭据相同的方式获取一个代理字符串。
有关更多信息,请参阅。
因此,语法是:

这可以在每个远程的基础上被覆盖;请参见
remote..proxy


http:允许选择代理身份验证方法
CURLAUTH\u ANY
不适用于通过307重定向到错误页面而不是407列表支持的身份验证方法来回答未经身份验证请求的代理。
因此,允许使用环境变量
GIT\u HTTP\u PROXY\u AUTHMETHOD
或配置变量
HTTP.proxyAuthmethod
remote..proxyAuthmethod
(类似地 到
http.proxy
remote..proxy

支持以下值:

  • anyauth(默认值)
  • 基本的
  • 消化
  • 协商
  • ntlm

非常感谢您的回复,我刚刚尝试了您的建议,但问题仍然存在。奇怪…这里可能还有更多信息:太棒了!哦,哈哈,我刚从bash it repo看到了nwinkler。bash it docker向您问好并感谢您的回复:)解决了我的问题:在代理之后,安装自定义git repo,挂在npm会话上就是这样!非常感谢你!我的密码中有“@”。如何使用git bash中的命令行将其放入?@Raulp不,它无法正确解析,您需要从密码中删除“@”password@BenJones谢谢,成功了!我不得不用%40替换@
[protocol://][user[:password]@]proxyhost[:port]