29

我们通过代理连接,在这里,git 被阻止(不是网站,而是在 git//: 上)我们尝试使用 egit,“Windows 上的 git”,有和没有代理,但没有发生本地克隆。

现在的问题是安装 npm 模块,我尝试通过从 git 网站(通过 web)下载模块(zip)并尝试本地安装,它有效,但这里的问题是大量依赖项,不容易拉模块一个通过一个来填充依赖项(和内部依赖项)

那么如何解决这个问题,我觉得可以通过三种方式来解决:

  • 允许 git 隧道通过防火墙(我在 n/w 团队中没有朋友)。
  • 建议我在进行 npm 安装时通过 http://(而不是 git://)提取具有依赖关系的模块。
  • 从 git 网站模块 + 完整依赖项下载,单次下载。
4

3 回答 3

62

从这个答案复制 https://stackoverflow.com/a/10729634/1095114


如果这是您的防火墙阻止 git: 协议端口 (9418) 的问题,那么您应该进行更持久的更改,这样您就不必记住为每个 git repo 发出其他帖子建议的命令。这也适用于可能也在使用该git://协议的子模块。

只需发出以下命令:

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

这只是将以下两行添加到 ~/.gitconfig:

[url "https://"] insteadOf = git://

现在,就像变魔术一样,所有 git 命令都会执行git://to的替换https://

于 2013-04-09T13:38:11.050 回答
1

Npm 和 git 不使用您的 Windows 代理设置。

您可以使用以下方式配置它们:

set HTTP_PROXY=http://user:pass@server.url:port

另请参阅https://superuser.com/questions/347476/how-to-install-npm-behind-authentication-proxy-on-windows


如果您的代理无法正常工作,您可以npm install在具有直接 Internet 连接的机器上运行(例如 dmz 中的服务器、托管服务提供商处、云中等),然后将node_modules文件夹复制到本地机器.

于 2013-04-10T13:25:54.170 回答
0

git 代理设置对我有用,可以从 github 克隆 repos。但是,在安装/更新使用 git url 的 npm 模块时,我仍然收到超时错误。我的解决方法是.git/config在 repo 的文件中手动设置代理。

[http]
    proxy = http://proxy.company.com:8888   

但是等等,还有更多:这适用于某些 git url,但不适用于其他。第二个也是最后一个解决方法是确保在两个用户配置文件中都设置了 git 代理,因为我的 PC 在我的驱动器上有一个共享网络用户主目录:

I:\.gitconfig
C:\Users\<userid>\.gitconfig

归功于此评论

于 2017-12-20T17:18:34.320 回答