2012-09-13 10 views
6

Ich habe diese Fehlermeldung (kopiert unten) nach dem Versuch, Heroku zu schieben. Ich habe zunächst eine Facebook-Canvas-App eingerichtet und das Hosting auf Heroku-Optionen ausgewählt. Es gab mir eine Heroku url, die ich als Remote auf der App wurde ich auf meiner MaschineHeroku: wie "git Pull" nach "Git Push-F"

heroku git:remote -a desolate-springs-1684 

Entwicklung Aber als ich schob, habe ich diesen Fehler

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$ 

Also habe ich

git push -f heroku master 

Aber jetzt muss ich anscheinend einen "git pull" machen. Was aber stelle ich nach dem "git pull"? Der Name der Heroku-Url? oder etwas anderes?

Antwort

18

Das Erzwingen Ihrer git push war keine gute Idee, weil Sie alle Commits verloren haben, die von Ihnen oder anderen Mitarbeitern, die Sie in Ihrer Arbeitskopie vermisst haben, ausgeführt wurden.

Bevor Sie pushen, sollten Sie die Upstream-Änderungen in Ihre lokale Arbeitskopie entweder zusammenführen oder umleiten.

Um die Änderungen zu fusionieren lokal

$ git pull heroku master 
$ git push heroku master 

die Änderungen lokal

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

BTW, jetzt rebase, dass Sie Ihre Änderungen gedrückt haben, brauchen Sie eigentlich nichts anderes zu tun. Das Remote-Repository enthält bereits alle Ihre Änderungen.

Wenn aus irgendeinem Grund die $ git status Befehl veraltete Referenzen zurückkehrt, einfach laufen

$ git pull heroku 

alle Remote-Änderungen zu holen. Bitte beachten Sie, dass git pull die Upstream-Änderungen einfach herunterladen (und nicht zusammenführen), wenn Sie keinen Zielzweig angeben (oder Sie den Tracking-Zweig aktiviert haben).

Beachten Sie auch, dass Heroku nicht als Git-Hosting betrachtet werden sollte. Es bedeutet, dass es sehr ungewöhnlich ist, eine git pull von Heroku durchzuführen. Stattdessen sollten Sie ein Git-Hosting (z. B. GitHub oder BitBucket) verwenden, um Ihr Repository zu speichern, und Push nur an Heroku ausführen, um die Anwendung bereitzustellen.

1

Dieser Fehler bedeutet im Grunde, dass im Repo Code vorhanden ist, der neuer ist als der Code, den Sie dorthin schieben möchten.

muss man einen Zug tun und Ihre eigenen Arbeits Repository aktualisieren dann erneut drücken, oder zwingen nur ein Push

git pull heroku master 

Als Seite beachten, wenn Sie nicht vertraut mit allen git Befehle sind, ich Ich würde empfehlen, dass Sie eine GUI verwenden, da dies den gesamten Prozess viel weniger überwältigend machen kann.

Es gibt viele große Kunden hier: http://git-scm.com/downloads/guis