2012-03-07 45 views
13

Tôi có vấn đề sau:Heroku: Gemfile.lock được yêu cầu vấn đề

Tôi đang cố gắng để triển khai dự án của tôi trên Heroku nhưng sau khi tôi chạy

git push heroku master 

tôi nhận được như sau:

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' 

Tôi đã chạy bundle installbundle update nhiều lần, tôi đã cố gắng xóa Gemfile.lock khỏi kho lưu trữ và từ hệ thống tệp của mình. Nhưng tôi vẫn nhận được cùng một thông điệp. Bất cứ ai có thể cho tôi biết tôi đang làm gì sai?

Nhánh tôi đang cố gắng đẩy được nhân bản từ chính.

Trả lời

21

Vài điều

  1. Bạn có đặt Gemfile.lock trong git? nếu có, là nó khóa (có nghĩa là cập nhật? - bạn đã làm nhiều lần chỉ cần kiểm tra lại)
  2. Chỉ cần làm bundle install trên nhắc địa phương của bạn.
  3. nay đặt Gemfile.lock
    • git add . hoặc bạn chỉ có thể thêm Gemfile.lock với git add Gemfile.lock
    • git này commit -m "cam kết thông báo ở đây"
    • git push

Bây giờ, hãy thực hiện git push heroku.

+3

Tôi đã thực hiện nó vài lần, nhưng vẫn gặp vấn đề tương tự – RomanKapitonov

+0

Ok, Trước tiên hãy loại bỏ Gemfile.lock khỏi Heroku và github và đặt địa chỉ mới, Bạn có thể vào cuộc trò chuyện không? - http://chat.stackoverflow.com/ chúng ta có thể trò chuyện –

5

Rất có thể Gemfile.lock của bạn không cam kết với kho lưu trữ của bạn. Sử dụng git st và đảm bảo rằng Gemfile.lock được cam kết; kiểm tra tệp .gitignore của bạn để đảm bảo rằng bạn không vô tình bỏ qua nó.

+3

tôi đã kiểm tra nó, tập tin này là trong tôi cam kết. đã sử dụng 'git ls-files' để kiểm tra điều này – RomanKapitonov

0

Nó nói với bạn rằng bạn cần phải đẩy Gemfile.lock - đó là cách Heroku biết phiên bản của ứng dụng mà bạn đang sử dụng. Sau khi đóng gói cục bộ, hãy commit Gemfile.lock kết quả sau đó đẩy ứng dụng vào Heroku.

6

Trên máy phát triển của bạn chạy rm -rf .bundle && bundle install && git add Gemfile.lock && git commit -m "Added Gemfile.lock" Sau đó triển khai.

2

Kiểm tra tệp .gitignore của bạn, nếu bạn đặt Gemfile.khóa ở đó, thoát khỏi dòng đó và chạy này lệnh:

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

tôi đã vấn đề này, tôi quên bundle install

Sau khi nó và git & Heroku tất cả mọi thứ đã đi OK
Đừng quên hoặc là git remote

sau khi viết mã của bạn trình tự sẽ là:

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

Tôi nghĩ đó là hoàn toàn

0

Chỉ cần loại bỏ các /Gemfile.lock từ .gitignore bạn

Các vấn đề liên quan