我有一个正在本地开发的 gem,项目正在使用它。
如果我在 中指定 gem 的位置path
,我可以进行更改,项目将获取新代码:
gem 'example', :path => "~/path/to/gems/example"
但是,当我推送到 Heroku 时,捆绑失败,因为 Heroku 无法访问我本地计算机上的 gem 源。
所以我可以将 gem 源推送到远程仓库并将 gem 源指向那里:
gem 'example', :github => 'example/example', :branch => 'example_feature'
但是,我现在需要将更改推送到此存储库,然后更新 gem 以获取项目中的新更改:
$ cd ~/path/to/gems/example
$ git c -a -m "Update gem"
$ git push origin example_feature
$ cd ~/path/to/projects/project
$ gem update example
我可以通过为我的本地 repo 设置本地覆盖来减轻痛苦:
$ bundle config local.example ~/path/to/gems/example
但是我仍然需要将更改的文件添加到 git,提交,然后$ gem update example
每次更改 gem 源时,如果我想在我的项目中进行新的更改。
有什么方法可以让我的项目自动获取本地更改(就像我使用 时那样path
),但仍然在生产中使用远程仓库?