我们说我有2个codebases / git repos。 project A and gem B
。
项目A使用gem B。
以下是项目A Gemfile中的条目。
gem 'B', git: 'https://yashdfjwehrlhkhklbRrKwgNq:x-token-auth@bitbucket.org/pwa-abcde/B.git', branch: 'dev/B-api'
今天我对gem B
进行了一些更改并将其推送到git。
但是project A
永远不会得到此更新,因为它已经使用旧版本的gem。
我的主要项目(A)托管在heroku中。
现在我的疑问是我如何强制heroku获取宝石的最新变化?
答案 0 :(得分:2)
您可以通过以下两种方式实现:
设置ref
代表Gemfile中的提交哈希而不是branch
名称并运行bundle install。现在,当你再次推送到heroku时,它将获取正确的提交。
gem 'B', git: 'https://yashdfjwehrlhkhklbRrKwgNq:x-token-auth@bitbucket.org/pwa-abcde/B.git', ref: 'commmit-hash'
为gem B
更改的提交创建新分支并设置新分支。
这种情况正在发生,因为您没有对Gemfile中的任何更改进行pusdev / B-apih。如果bundle install
和Gemfile
发生任何变化,Heroku将运行Gemfile.lock
。
答案 1 :(得分:0)
不要在Heroku的bundle update
内运行Project A
,而是先在本地运行bundle update
。这将更新您的Gemfile.lock
。测试Project A
是否仍按预期在本地运行
然后提交并将新的Gemfile.lock
推送到Heroku。