2013-09-07 12 views
6

Oto scenariusz:Nie można wcisnąć do Heroku po dodaniu pilota Heroku repo do mojego istniejącego lokalnego repo

1) Mój partner projektu i ja pracowaliśmy na Ruby on Rails aplikacji razem przy użyciu GitHub jak nasz kod repo.

2) Aplikacja jest pod jej konta github i ona dodaje mi jako współpracownik

3) Ona wdrożony do Heroku i dodaje mnie jako współpracownik również tam

4) użyłem następujących polecenie z mojego istniejącego katalogu aplikacji z zamiarem dodania istniejącej aplikacji zdalnej Heroku jako pilota do mojej istniejącej aplikacji lokalnej. Moja istniejący lokalny app, jak wspomniałem wcześniej, już zdalnego GitHub

git remote add heroku [email protected]:codefellow.git 

5) zrobiłem kilka zmian i pchnął je do GitHub i wszystko było na bieżąco

6) Potem próbował pchnąć do Heroku pomocą następującego polecenia

git push heroku master 

7) to dało mi błąd mówiąc czubek mojego oddziału był z tyłu, jak pokazano poniżej, ale kiedy próbowałem wyciągnąć z github, to powiedział, że jestem na bieżąco, jak również pokazano poniżej

➜ code-fellows-alumni git:(master) git push heroku master 
To [email protected]:codefellow.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:codefellow.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 
➜ code-fellows-alumni git:(master) git pull 
Already up-to-date. 

Czy ktoś wie, co się tutaj dzieje? Jak mój lokalny oddział mógłby nie być zsynchronizowany z Heroku, skoro jestem na bieżąco z Githubem? Czy mój partner projektu byłby w stanie przeforsować zmiany w Heroku bez wcześniejszego popchnięcia ich na Githuba? Sprawdziłem i nie ma widelca aplikacji. Nie mogę się z nią skontaktować w tej chwili, aby dowiedzieć się, co mogła zrobić - nie jestem nawet pewna, czy pozwoliłaby jej wprowadzić zmiany do Heroku, gdyby nie zostali jeszcze popchnięci do Github. Wszelkie spostrzeżenia byłyby mile widziane. Nie chcę sklonować aplikacji z Heroku koniecznie, ponieważ mam już lokalną synchronizację z Githubem. Chcę używać Github jako repozytorium kodu i niechętnie zaczynam od klona z Heroku. Zapoznałem się już z dokumentacją Heroku na ten temat: https://devcenter.heroku.com/articles/git. Mówi się tylko, żeby zrobić klona, ​​ale nie chcę tego robić z wyżej wymienionych powodów. Postępowałem zgodnie ze wskazówkami podanymi w odpowiedzi na to pytanie (How to link a folder with an existing Heroku app), aby uzyskać tak daleko, ale wygląda na to, że brakuje jakiegoś elementu, albo mój partner projektu zrobił coś niezwykłego. Z góry dziękuję za wszelkie pomocne pomysły.

+0

Zrób to "git pull heroku master", a następnie spróbuj ponownie nacisnąć po usunięciu konfliktów –

+0

Dzięki - dobrze znać to polecenie. Sądziłem, że może to być to samo, co polecenie push, ale nigdy wcześniej tego nie robił. – Sedona

Odpowiedz

24

Otrzymany komunikat oznacza, że ​​wprowadzone zmiany nie zostały wprowadzone w lokalnej kopii. Kiedy odsuwasz to odrzucenie, ponieważ pilot Heroku jest bardziej zaawansowany niż twój, więc masz rację myśląc, że twój partner popchnął Heroku bez popychania do Githuba - jest to typowy scenariusz od momentu wdrożenia z lokalnego repozytorium po wdrożeniu w Heroku , w przeciwieństwie do tradycyjnego wdrożenia Capistrano, które zwykle wdraża kod z Github.

To do ciebie jako zespół, aby wymyślić sposoby pracy, które uniemożliwiają to od występującego, ale jeśli chcesz dostać pracę w tej chwili, można albo

  • git push heroku master -f. Zmusza to twoje zmiany i nadpisze to, co jest obecnie, za pomocą twojego kodu, aby przenieść zmiany z Heroku do lokalnego repo, które powinny pozwolić ci na zrobienie git push heroku master kiedy będziesz mieć zmiany.
+1

Dziękuję bardzo !! Jest to bardzo zwięzłe zamknięcie różnych komentarzy, które wyciągnąłem z dyskusji na ten temat - w sposób jasny i definitywny. Sądzę, że po prostu będę musiał poczekać, aż skontaktuję się z moim partnerem, ponieważ wolę zachować github jako źródło - i mam luksus oczekiwania. Ale dobrze jest wiedzieć, jakie byłyby moje opcje, gdybym nie mógł czekać. Dobrze też mieć potwierdzenie, że prawdopodobnie to właśnie się dzieje. Dzięki jeszcze raz. – Sedona