Ich habe eine App auf Heroku, die alten Code ausführt. Ich habe eine kleine Änderung vorgenommen und die Änderung übernommen. Ich bin dann gerannt
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 etwa 15 Tagen wieder auf eine andere Version in Heroku umgestellt, aber seitdem Updates dazu gepusht 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 verschieben? Ich habe Produktionsdaten in der Datenbank und möchte sie NICHT berühren.
Danke im Voraus!!
Bitte bestätigen Sie, dass Ihre derzeitige Niederlassung Master ist.
git branch
Wenn der Zeiger nicht auf den Master zeigt, checken Sie den Master-Zweig aus
git checkout master
Übernehmen Sie Ihre Änderungen und versuchen Sie, zum Heroku zu drücken
git commit -am "xxxyyzzz"
git Push heroku master
Wenn Sie git Push heroku master
ausführen, geht git davon aus, dass Sie vom Master aus pushen. Wenn Sie also Änderungen in einem anderen Zweig vornehmen, versuchen Sie, Ihren Master-Zweig ohne Änderungen zu pushen.
Sie haben zwei Möglichkeiten
1.Merge deine Änderungen mit master und drücke sie.
Übernehmen Sie Ihre Änderungen in Ihrem aktuellen Zweig, und führen Sie sie dann mit master zusammen
git commit -a - m "your messages"
git checkout master
git merge your_feature_branch
git Push heroku master
2.Push deine Änderungen aus deiner aktuellen Branche
git Push heroku your_feature_branch:master
Ich bin bereit zu wetten, dass Sie vergessen haben, git add .
gefolgt von git commit -m 'xyz'
auszuführen?
Ich hatte ein ähnliches Problem und meine Änderungen waren auf Heroku keineswegs sichtbar. Um mich zu bestätigen, nahm ich sogar einen Klon von Heroku und es war offensichtlich auf dem neuesten Stand.
Ich könnte mein Problem nur mit diesem Ansatz lösen:
Schritt 1: Erstellen Sie einen neuen Zweig aus master
git checkout -b new_branch
Schritt 2: Füge einfach einen Kommentar in einer beliebigen 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 auf Heroku.
git Push heroku new_branch:master
heroku restart
Sie konnten Ihre Änderungen jetzt erfolgreich auf Heroku sehen.
Auch wenn dies ein altes Problem ist, wollte ich mit dem aktualisieren, was für mich (einen Neuling) funktionierte, sollte jemand anderes darauf stoßen:
Nachdem ich die Anweisungen hier (von Hudson) befolgt hatte, war der Trick für mich schließlich, einen "git pull" zu machen, nachdem ich den Zweig "master" ausgecheckt hatte. Vielleicht drückt "git Push heroku master" nur den dortigen Master-Zweig aus?
Dies setzt natürlich voraus, dass alle erforderlichen Änderungen korrekt in Ihren Master eingefügt wurden. Ich hatte mich seit der Gründung des Projekts nicht von master auf my local entschieden, da alle Zusammenführungen (von der Entwicklung zum Master) auf GitHub durchgeführt wurden und ich an neuen Niederlassungen gearbeitet habe, die später mit der Entwicklung zusammengeführt wurden.
Um die oben genannten Schritte von Hudson zu wiederholen:
git checkout master
git pull
(hier habe ich README aktualisiert, um eine Änderung zu bestätigen, wie "Heroku deploy [date, time]")
git add .
git commit -am "xxxyyzzz"
git Push heroku master
heroku run rake db:migrate
heroku restart
Viel Glück!
Versuchen:
heroku status
Dies gab folgende Informationen zurück, die bestätigten, dass das Problem bei der Heroku-API lag (und nicht bei meiner App!):
"Die API erfährt Verzögerungen. Dies kann zu Verzögerungen beim Hinzufügen neuer Domänen, neuer Releases und anderen derartigen Aktionen führen. Derzeit untersuchen die Ingenieure das Problem."
In diesem Fall schiebe ich den vorherigen Commit-Hash wie folgt:
git Push some-heroku-app-name ee3bca189acec89f5e9b098692ab6cee386a8f25:master --force
Dann drücke ich den Master erneut so:
git Push some-heroku-app-name master:master
Mein ausführbarer Name hat sich geändert, aber ich habe vergessen, den Namen in meiner Procfile zu ändern. Während alle Dateien in Heroku korrekt aktualisiert wurden, wurde dieselbe alte ausführbare Datei ausgeführt. Ich habe heroku local
Von der Befehlszeile aus verwendet, um dieses Problem zu ermitteln.
Wenn Sie Java verwenden, vergessen Sie nicht, das Projekt vor dem Push neu zu erstellen.
Im Falle von Gradle:
gradlew clean install
Dasselbe Problem: Ich habe meinem lokalen Repository mit dem Befehl heroku git: remote eine Fernbedienung hinzugefügt und diese dann verschoben.
heroku git:remote -a your-heroku-app
git Push heroku master
hatte das gleiche problem, was für mich funktioniert hat: mach ein Commit mit einer zufälligen Nachricht und dann Push
git commit -m"random message"
git Push heroku master
Ich weiß, ich weiß, dumm, aber es ist mir passiert, also lasse ich andere eine Warnung: Stellen Sie sicher, dass die App, auf die Sie drücken, die gleiche App ist, die Sie auf Änderungen überprüfen.
In meinem Fall habe ich die Bereitstellung und Ausführung einer Shell in der Produktion vorangetrieben und nicht verstanden, 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 veröffentlichte, aber es war wahrscheinlich ein One-Push-Zufall, der mich nur für eine weitere Stunde im Kreis hielt, weil ich die falsche App getestet hatte. )