Git Push Heroku Master sagt "Alles auf dem neuesten Stand", aber die App ist nicht aktuell


72

Ich habe eine App auf Heroku, auf der alter Code ausgeführt wird. Ich habe eine kleine Änderung vorgenommen und die Änderung übernommen. Ich rannte dann

git push heroku master

Es wird sagen

Fetching repository, done.
Everything up-to-date

Aber wenn ich mir die App anschaue, ist alles alter Code. Ich habe die Site vor ungefähr 15 Tagen auf eine andere Version in Heroku zurückgesetzt, aber seitdem Aktualisierungen vorgenommen, und sie haben funktioniert.

Warum erhält Heroku nicht die aktuellsten Dateien aus meinem Github-Repository? Gibt es eine Möglichkeit, die App einfach zurückzusetzen und die Dateien erneut von Github zu übertragen? Ich habe Produktionsdaten in der Datenbank, daher möchte ich sie NICHT berühren.

Danke im Voraus!!


3
Selbes Problem hier. Hast du es jemals herausgefunden? Die hier angebotenen Antworten sind offensichtliche Dinge, die ich bereits erfolglos versucht habe. @ Darkmatter5
Ben

Die Antworten besagen, dass ich mich möglicherweise in einem anderen Zweig befinde, aber ich habe das gleiche Problem und mein Zweig ist Master. Lokal hatte ich mich geändert, sie erfolgreich auf Heroku bereitgestellt, und Git sagt, dass es keinen Unterschied zwischen lokal und Heroku gibt, während Änderungen NICHT tatsächlich angezeigt wurden (der Browser zeigt vor der Bereitstellung immer noch die alte Version an). Ich habe sowohl Client- als auch Server-Caches geleert und das Problem besteht weiterhin.
Klarheit

Antworten:


85

Bitte bestätigen Sie, dass Ihre aktuelle Niederlassung Master ist.

 git branch 

Wenn der Zeiger nicht auf den Master zeigt, checken Sie zum Master-Zweig aus

git checkout master

Übernehmen Sie Ihre Änderungen und versuchen Sie, auf Heroku zu pushen

git commit -am "xxxyyzzz"    
git push heroku master

169
git push heroku yourlocalbranch:masterWenn Sie Ihre lokale, nicht Master-Niederlassung zu Heroku Master schieben möchten
Danny

1
Kam mit dem gleichen Problem hierher @danny klärte Hudsons Lösung auf.
Angel S. Moreno

Was ist, wenn der aktuelle Zweig Master ist, ich aber immer noch das obige Problem habe?
Klarheit

64

Wenn du rennst git push heroku master , geht git davon aus, dass Sie vom Master aus pushen. Wenn Sie also Änderungen in einem anderen Zweig vornehmen, werden Sie versuchen, Ihren Master-Zweig ohne Änderungen zu pushen.

Sie haben zwei Möglichkeiten

1.Merge deine Änderungen mit Master und schiebe sie.

Übernehmen Sie Ihre Änderungen in Ihrem eigentlichen Zweig und führen Sie sie dann mit dem Master zusammen

git commit -a - m "your messages"
git checkout master
git merge your_feature_branch
git push heroku master

2.Push Ihre Änderungen aus Ihrem tatsächlichen Zweig

git push heroku your_feature_branch:master

15

Ich hatte ein ähnliches Problem und meine Änderungen waren auf Heroku keineswegs sichtbar. Um mich zu bestätigen, habe ich sogar einen Klon von Heroku genommen und er war offensichtlich auf dem neuesten Stand.

Ich konnte mein Problem nur mit folgendem Ansatz lösen:

Schritt 1: Erstellen Sie einen neuen Zweig ausmaster

git checkout -b new_branch

Schritt 2: Fügen Sie einfach einen Kommentar in eine beliebige Datei ein, um ein neues Commit durchzuführen, und dann:

git add .
git commit -m "Just a test commit to push new branch to heroku"

Schritt 3: Schieben Sie den neuen Zweig zu Heroku.

git push heroku new_branch:master
heroku restart

Sie konnten jetzt Ihre Änderungen erfolgreich auf Heroku sehen.


3
Dies git push heroku new_branch:masterhalf
Sunny

Danke dafür. Lief wie am Schnürchen. Ich wusste nicht, dass es möglich ist, einen Zweig zum anderen zu verschieben.
Mithushancj

Es heißt "Alles auf dem neuesten Stand", aber das Problem bleibt bestehen.
Klarheit

13

Ich bin bereit zu wetten, dass du vergessen hast zu rennen, git add .gefolgt von git commit -m 'xyz'?


Heheheh, das hat mich zum Lachen gebracht. Nachdem ich drei Tage und Nächte codiert hatte, um kleine Dinge zu reparieren, vergaß ich, meinen Code hinzuzufügen und
festzuschreiben

4

Obwohl dies ein altes Problem ist, wollte ich aktualisieren, was für mich (einen Neuling) funktioniert, sollte jemand anderes darauf stoßen:

Nachdem ich den Anweisungen hier (von Hudson) gefolgt war, war der Trick für mich schließlich ein "Git Pull", nachdem ich den "Master" -Zweig ausgecheckt hatte. Vielleicht schiebt "git push heroku master" nur den lokalen Zweig des Masters heraus?

Dies setzt natürlich voraus, dass alle erforderlichen Änderungen korrekt in Ihrem Master zusammengeführt wurden. Ich hatte seit der Einrichtung des Projekts nicht mehr von Master auf meinem lokalen Standort abgerufen, da alle Zusammenführungen (von Entwicklung zu Master) auf GitHub ausgeführt wurden und ich an neuen Zweigen gearbeitet hatte, die später mit der Entwicklung zusammengeführt wurden.

Um die obigen Schritte von Hudson noch einmal zu wiederholen:

git checkout master

git pull

(Hier habe ich README aktualisiert, um eine Änderung zu bestätigen, z. B. "Heroku-Bereitstellung [Datum, Uhrzeit]".

git add .

git commit -am "xxxyyzzz"

git push heroku master

heroku run rake db:migrate

heroku restart

Viel Glück!


Das gleiche Problem für mich, ich hatte den Hauptzweig nicht gezogen, nachdem ich einen anderen Zweig geschoben und zusammengeführt hatte.
Dennispreston

3

Versuchen:

heroku status

Dies ergab Folgendes, was bestätigte, dass das Problem bei der Heroku-API lag (und nicht bei meiner App!):

"Bei der API treten Verzögerungen auf. Dies kann zu Verzögerungen beim Hinzufügen neuer Domänen, neuer Versionen und anderer solcher Aktionen führen. Derzeit untersuchen Ingenieure das Problem."


3

In diesem Fall drücke ich den vorherigen Commit-Hash wie folgt:

git push some-heroku-app-name SOME-COMMIT-HASH:master --force

Dann drücke ich den Meister wie folgt neu:

git push some-heroku-app-name master:master

1
Ich habe dies verwendet, wenn es nach dem Ändern des Build Packs auf Heroku neu erstellt werden musste. Sie müssen wahrscheinlich --forcezum ersten Befehl hinzufügen .
Markus

@ Markus Eigentlich brauchte ich nie "--force". Es tut nicht weh, es zu haben, also habe ich meine Antwort aktualisiert. Danke!
Vladimir Djuricic

1

Gleiches Problem: Ich habe meinem lokalen Repository mit dem Befehl heroku git: remote eine Fernbedienung hinzugefügt und diese dann gepusht.

heroku git:remote -a your-heroku-app

git push heroku master

0

Ich weiß, ich weiß, dumm, aber es ist mir passiert, also überlasse ich anderen eine Warnung: Stellen Sie sicher, dass die App, auf die Sie pushen, dieselbe App ist, die Sie auf Änderungen prüfen.

In meinem Fall habe ich versucht, eine Shell für die Produktion bereitzustellen und dann auszuführen, ohne zu verstehen, warum sich die statischen Dateien nicht geändert haben.

(Es begann mit einem echten Problem, bei dem sich statische Dateien nicht geändert haben, als ich eine neue Version gepusht habe, aber es war wahrscheinlich ein One-Push-Zufall, und es hat mich nur eine weitere Stunde im Kreis gehalten, weil ich die falsche App getestet habe. )


0

Wenn Sie Java verwenden, vergessen Sie nicht, das Projekt vor dem Push neu zu erstellen.

Im Falle von Gradle:

gradlew clean install

Ich weiß nicht, warum du eine Ablehnung bekommen hast ... Ich hatte das gleiche Problem, aber mit einem React-Projekt. Durch Ausführen webpack -p --progress --config webpack.config.prod.js(wobei das letzte Argument der Name Ihrer Webpack-Konfigurationsdatei ist) und anschließendes Festschreiben und Drücken wurde das Problem für mich behoben.
Abagh0703

0

Mein ausführbarer Name hatte sich geändert, aber ich habe vergessen, den Namen in meiner Procfile zu ändern . Während also alle Dateien in Heroku korrekt aktualisiert wurden, wurde dieselbe alte ausführbare Datei ausgeführt. Ich habe heroku local über die Befehlszeile verwendet, um dieses Problem aufzuspüren.


0

Hatte das gleiche Problem mehrmals. Was hat bei mir funktioniert, wenn ich meinen Browserverlauf gelöscht oder die App in einem Inkognito-Fenster geöffnet habe?


-1

hatte das gleiche Problem, was für mich funktionierte war: Machen Sie ein Commit mit einer zufälligen Nachricht und drücken Sie dann

git commit -m"random message"

git push heroku master
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.