2012-03-07 79 views
13

我有以下问题:的Heroku:Gemfile.lock的需要问题

我想在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 [email protected]:*****.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:*****.git' 

我已经运行了bundle installbundle update好几次了,我试着从版本库和我的文件系统中删除Gemfile.lock。但我仍然收到同样的信息。谁能告诉我我做错了什么?

我试图推动的分支是从主复制的。

回答

21

事情很少

  1. 你有没有放置Gemfile.lock的Git的?如果是的话,它是锁定(意味着更新? - 你做了几次,只是双重检查)
  2. 只要做你的本地提示bundle install
  3. 现在把Gemfile.lock的
    • git add .或者你可以用这个git add Gemfile.lock
    • GIT中只添加Gemfile.lock的承诺-m “提交此消息”
    • 混帐推

现在做git push heroku它应该工作。

+3

我已经做了好几次了,但还是得到了同样的问题 – RomanKapitonov 2012-03-08 22:52:26

+0

好吧,首先从Heroku和github中删除Gemfile.lock,然后放置一个新的,你能来聊天吗? - http://chat.stackoverflow.com/我们可以聊天 – 2012-03-08 22:56:09

5

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

+3

我检查它删除/Gemfile.lock,这个文件是在我的承诺。使用'git ls-files'来检查这个 – RomanKapitonov 2012-03-08 22:53:41

0

它告诉你,你需要推Gemfile.lock--这就是Heroku如何知道你的应用程序正在使用什么版本的宝石。在本地捆绑后,提交生成的Gemfile.lock,然后将应用程序推送到Heroku。

6

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

2

检查你的.gitignore文件,如果你把Gemfile。锁在那里,摆脱线并运行此命令:

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

我有这个问题,我忘了bundle install

它之后和Git & Heroku的一切都OK
不要忘记无论是git remote

编写代码后的顺序将是:

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

我认为这是完全