是否可以覆盖gemfile进行本地开发?

我们的git存储库中当前有一个Gemfile 。 但是,我在我的环境中只使用本地的gem(我的团队不使用它)。 为了使用它,我必须将它添加到我们的Gemfile ,但每次我检查我们的master / dev主分支时,我必须删除它,因为与跟踪的gemfile冲突。

我想要的是像Gemfile.local这样的东西,它将inheritance从Gemfile导入的gem,但也允许在那里导入新gem以仅在我的机器上使用。 在.gitignore中将忽略此文件。 这有可能吗?

设置BUNDLE_GEMFILE环境变量:

 BUNDLE_GEMFILE=Gemfile.local bundle exec rails c 

要仅在Gemfile.local提供“delta”,请在其Gemfile.local放置require_relative 'Gemfile' (或者@MichaelKohl在评论中建议的Bundler::Dsl#eval_gemfile 。)

将下面的代码放在Gemfile.local的顶部以加载现有的gemfile

 if File.exists?('Gemfile') then eval File.read('Gemfile') end 

它将从现有的Gemfile加载所有gem。 您也可以根据需要添加新gem。

运行以下命令从新的Gemfile.local安装gem:

 bundle install --gemfile=Gemfile.local