heroku:Gemfile.lock是必需的问题

时间:2012-03-07 16:56:15

标签: ruby-on-rails ruby git heroku production

我有以下问题:

我正在尝试在heroku上部署我的项目,但是在我运行

之后
git push heroku master

我得到以下内容:

git push heroku master -f
Counting objects: 524, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (498/498), done.
Writing objects: 100% (524/524), 157.76 KiB, done.
Total 524 (delta 207), reused 62 (delta 2)
-----> Heroku receiving push 
-----> Ruby/Rails app detected
!
!     Gemfile.lock is required. Please run "bundle install" locally
!     and commit your Gemfile.lock.
!
!     Heroku push rejected, failed to compile Ruby/rails app
To git@heroku.com:*****.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:*****.git'

我已多次运行bundle installbundle update,我尝试从存储库和文件系统中删除Gemfile.lock。但我仍然得到同样的信息。谁能告诉我我做错了什么?

我想要推送的分支是从主人那里克隆出来的。

8 个答案:

答案 0 :(得分:21)

很少有事情

  1. 你在Geit中放置了Gemfile.lock吗?如果是的话,它是否锁定(意味着更新? - 你做过几次只是仔细检查)
  2. 只需在本地提示下执行bundle install
  3. 现在放置Gemfile.lock
    • git add .或者您只能使用此git add Gemfile.lock
    • 添加Gemfile.lock
    • git commit -m“在此提交消息”
    • git push
  4. 现在做git push heroku它应该有效。

答案 1 :(得分:6)

在您的开发机器上运行  rm -rf .bundle && bundle install && git add Gemfile.lock && git commit -m "Added Gemfile.lock" 然后部署。

答案 2 :(得分:5)

很可能您的Gemfile.lock未提交到您的存储库。使用git st并确保提交Gemfile.lock;检查你的.gitignore文件,确保你不会无意中忽略它。

答案 3 :(得分:2)

检查你的.gitignore文件,如果你把Gemfile.lock放在那里,摆脱那一行并运行这个命令:

git add Gemfile.lock
git commit -m "Added Gemfile.lock"
git push
git push heroku

答案 4 :(得分:0)

它告诉你需要推送一个Gemfile.lock - 这就是Heroku知道你的应用程序使用的gems版本的方式。在本地捆绑后,提交生成的Gemfile.lock,然后将应用程序推送到Heroku。

答案 5 :(得分:0)

我遇到了这个问题,我忘记了bundle install

之后和git& Heroku一切顺利 不要忘记git remote

编写代码后,

序列将是:

bundle install
heroku create
git init
git add *
git remote
git commit -a -m "First init"
git push heroku master 

我认为这是完整的

答案 6 :(得分:0)

只需从.gitignore

中删除/Gemfile.lock即可

答案 7 :(得分:0)

您还需要检查.hgignore文件,并删除Gemfile.lock行