强制捆绑安装使用https://而不是git://用于基于GitHub的gem

我正在试图build立一个rails项目,因为我正在工作的主机没有访问互联网的git://协议(端口9418)我得到的错误

Fetching git://github.com/pivotal/jasmine.git fatal: unable to connect to github.com: github.com[0: 192.30.252.130]: errno=Connection refused 

运行bundle install

GemFile中的相关行没有指定git://作为协议,它只是指向GitHub作为gem的源代码

 gem 'jasmine', :github => 'pivotal/jasmine-gem' 

我需要做什么才能使捆绑使用https://而不是git:/ /从GitHub拉gem?

编辑:

除了编辑GemFile中的每一个受影响的行之外,还有其他的方法吗? 如果项目的GemFile更新,我宁愿避免任何合并问题。

Git使用url..insteadOfconfiguration选项提供URL重写function。

因此,要使所有连接到github.com使用https://而不是git://

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

--global开关为当前用户设置所有git操作的configuration选项,所以有时可能会造成太大的干扰。 但是它避免了改变当前项目中的gitconfiguration。

你可以做:

 gem 'jasmine', git: 'https://github.com/pivotal/jasmine-gem.git' 

使用bundle config github.https true

如果你只想为一个Gemfile中的所有gem,你可以在文件顶部添加这些行:

 git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end 

或者你可以使用bundle config github.https true 。 但这只影响你当前的环境。

Bundler 2.0不再需要这个了。

如果您正在部署到heroku,则可以将BUNDLE_GITHUB__HTTPS (注意双下划线)添加为环境variables,并将其设置为true (在configurationvariables部分的Settings选项卡下的heroku应用程序仪表板中)。 这将会把协议从git://切换到https://

你应该能够把一个完整的Git URL放在你的Gemfile中。 例如:

 gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git'