2012-09-13 38 views
6

Tôi nhận được thông báo lỗi này (được sao chép bên dưới) sau khi cố gắng đẩy tới Heroku. Ban đầu tôi thiết lập một ứng dụng canvas facebook và chọn lưu trữ trên các tùy chọn heroku. Nó đã cho tôi một url Heroku, mà tôi thêm vào như là một từ xa trên ứng dụng tôi đã phát triển trên máy tính của tôiHeroku: cách "git pull" sau 'git push -f'

heroku git:remote -a desolate-springs-1684 

Nhưng khi tôi đẩy, tôi đã nhận lỗi này

error: failed to push some refs to '[email protected]:desolate-springs-1684.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 
localhost:nhl michaelmitchell$ 

Vì vậy, tôi đã làm

git push -f heroku master 

Nhưng bây giờ tôi dường như phải thực hiện 'git pull'. Tuy nhiên, tôi phải làm gì sau khi 'git pull'? Tên của địa chỉ myoku? hoặc cái gì khác?

Trả lời

18

Buộc git push không phải là một ý tưởng hay vì bạn đã mất bất kỳ cam kết nào do bạn hoặc các cộng tác viên khác thực hiện trên bản sao làm việc của bạn.

Trước khi đẩy, bạn cần phải hợp nhất hoặc rebased các thay đổi ngược dòng vào bản sao làm việc tại địa phương của bạn.

Để trộn các thay đổi cục bộ

$ git pull heroku master 
$ git push heroku master 

Để rebase những thay đổi cục bộ

$ git pull --rebase heroku master 
$ git push heroku master 

BTW, bây giờ mà bạn đã đẩy những thay đổi của bạn, bạn thực sự không cần phải làm bất cứ điều gì khác. Kho lưu trữ từ xa đã chứa tất cả các thay đổi của bạn.

Nếu vì bất cứ lý do lệnh $ git status đang trở lại tài liệu tham khảo đã lỗi thời, chỉ cần chạy

$ git pull heroku 

để lấy tất cả những thay đổi từ xa. Xin lưu ý rằng trừ khi bạn chỉ định một nhánh đích (hoặc bạn đã kích hoạt nhánh theo dõi), git pull sẽ chỉ tải xuống (và không hợp nhất) các thay đổi ngược dòng.

Cũng lưu ý rằng Heroku không nên được coi là lưu trữ git. Nó có nghĩa là nó rất hiếm khi thực hiện một git pull từ Heroku. Thay vào đó, bạn nên sử dụng một git hosting (như GitHub hoặc BitBucket) để lưu trữ kho lưu trữ của bạn và chỉ thực hiện push to Heroku để triển khai ứng dụng.

1

Lỗi đó về cơ bản có nghĩa là có mã trong repo mới hơn mã bạn đang cố gắng đẩy vào.

bạn phải làm một kéo và cập nhật kho làm việc riêng của bạn sau đó đẩy một lần nữa, hoặc chỉ buộc một push

git pull heroku master 

Là một mặt lưu ý, nếu bạn không quen thuộc với tất cả các lệnh git, tôi sẽ khuyên bạn nên sử dụng GUI vì nó có thể làm cho toàn bộ quá trình ít hơn rất nhiều.

Có rất nhiều khách hàng tuyệt vời tại đây: http://git-scm.com/downloads/guis