2012-03-07 45 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 

我認爲這是完全