2013-09-07 13 views
6

Ecco lo scenario:Non può spingere a Heroku dopo l'aggiunta di un repo Heroku a distanza al mio attuale repo locale

1) Il mio partner di progetto ed io stavano lavorando su un'applicazione Ruby on Rails insieme utilizzando github come la nostra repo codice.

2) L'applicazione è sotto il suo conto github e lei mi aveva aggiunto come collaboratore

3) Ha distribuito Heroku e mi ha aggiunto come collaboratore anche lì

4) Ho usato il seguente comando dalla mia directory app esistente con l'intenzione di aggiungere l'app remota Heroku esistente come remoto alla mia app locale esistente. La mia app locale esistente, come ho detto prima, aveva già un github remota

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

5) Ho fatto alcuni cambiamenti e li spinse a Github e tutto è stato fino ad oggi

6) Poi ho cercato di spingere a Heroku con il seguente comando

git push heroku master 

7) Questo mi ha dato un errore che dice la punta del mio ramo era dietro, come mostrato di seguito, ma quando ho provato a tirare da GitHub, ha detto che ero fino ad oggi, come mostrato anche sotto

➜ 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. 

Quindi qualcuno sa cosa sta succedendo qui? Come potrebbe la mia filiale locale essere fuori sincrono con Heroku se sono aggiornato con Github? Sarebbe stato possibile per il mio partner di progetto aver spinto i cambiamenti a Heroku senza averli prima spinti a Github? Ho controllato e lei non ha un fork dell'applicazione. Non posso mettermi in contatto con lei in questo momento per scoprire con certezza cosa potrebbe aver fatto - non sono nemmeno sicuro che le permetterebbe di spingere i cambiamenti a Heroku se non fossero stati ancora spinti a Github. Qualsiasi intuizione sarebbe molto apprezzata. Non voglio clonare l'app da Heroku necessariamente perché l'ho già sincronizzata localmente con Github. Voglio usare Github come repository di codice e sono riluttante a iniziare da un clone di Heroku. Ho già esaminato la documentazione di Heroku al riguardo: https://devcenter.heroku.com/articles/git. Dice solo di fare un clone, ma non voglio farlo per le ragioni di cui sopra. Ho seguito le indicazioni fornite nella risposta a questa domanda (How to link a folder with an existing Heroku app) per arrivare così lontano, ma sembra che ci sia un pezzo mancante o il mio partner di progetto ha fatto qualcosa di insolito. Grazie in anticipo per eventuali idee utili che potresti avere.

+0

fare questo 'git pull heroku master' e quindi provare a premere nuovamente dopo aver rimosso i conflitti –

+0

Grazie - bello sapere che il comando. Supponevo che potesse essere lo stesso del comando push, ma non l'avevo mai fatto prima. – Sedona

risposta

24

Il messaggio visualizzato indica che sono state apportate modifiche all'applicazione che non è presente nella copia locale. Quando lo spingi è respinto perché il telecomando Heroku è più avanti del tuo, quindi hai ragione nel pensare che il tuo partner abbia spinto a Heroku senza spingere a Github - è uno scenario comune dal momento in cui viene distribuito dal repository locale quando si distribuisce su Heroku , a differenza di una distribuzione tradizionale di Capistrano che normalmente distribuiva il codice da Github.

E 'davanti a te come una squadra per trovare dei modi di lavoro che impediscono che ciò si verificano, ma se avete bisogno di ottenere lavorando in questo momento, è possibile

  • git push heroku master -f. Questo costringe le tue modifiche e sovrascrive quello che c'è attualmente con il tuo codice
  • git pull heroku master per estrarre i cambiamenti da Heroku nel tuo repository locale che dovrebbe quindi consentire di fare un git push heroku master quando hai le modifiche.
+1

Grazie mille !! Questo è un incapsulamento molto sintetico di vari commenti che ho tratto dalle discussioni su questo argomento - in modo chiaro e definitivo. Penso che dovrò solo aspettare di poter entrare in contatto con il mio partner perché preferirei mantenere Github come fonte - e ho il lusso di poter aspettare. Ma è bello sapere esattamente quali sarebbero le mie opzioni se non potessi aspettare. Buono anche avere conferma che questo è probabilmente quello che sta succedendo. Grazie ancora. – Sedona

Problemi correlati