So zeigen Sie die Remote-Git-Revision auf Heroku an

85

Für die Bereitstellung in Heroku verwende ich git push heroku master. Aber wie sehe ich, welche Revision ich auf Heroku verschoben habe? (Ich bin oft im Zweifel, ob ich die aktuelle Version hochgeschoben habe)

Für diejenigen, die nicht damit vertraut sind, generiert Herokus Erstellungsskript ein Remote-Git-Repository, in das Sie pushen. Beim Push wird der Code auf magische Weise bereitgestellt.

Heroku fügt dem lokalen ein Remote-Repository in der folgenden Form hinzu:

$ git remote add heroku [email protected]:appname.git

Weitere Informationen in Herokus Handbuch "Bereitstellen mit Git"

Die Frage ist: Wie kann ich die neueste Version im Heroku-Repository sehen?

Jesper Rønn-Jensen
quelle

Antworten:

63

Wenn Sie gerade gepusht haben und sicherstellen möchten, dass Sie auf dem neuesten Stand sind, können Sie einfach ausführen git remote show herokuund eine ähnliche Ausgabe sehen:

* remote heroku
  Fetch URL: [email protected]:XXX.git
  Push  URL: [email protected]:XXX.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (up to date)

Das (up to date)am Ende wird ersetzt durch, (fast forwardable)wenn es nicht aktuell ist.

Wenn Sie das vollständige Festschreibungsprotokoll für die Heroku-Fernbedienung anzeigen möchten, kann ich es nur zuerst überprüfen. git checkout heroku/mastergibt Ihnen den aktuellen Commit-Hash und den Commit-Kommentar: HEAD is now at <short commit hash>... <commit comment>und git loggibt Ihnen den Rest der Geschichte.

Brock Batsell
quelle
Vielen Dank für diese Antwort! Ich habe überall danach gesucht.
Baums
3
Sagt Ihnen nicht wirklich den Schiedsrichter
Obie
Gibt es eine Möglichkeit, die Dateien selbst online wie in einem Github-Repo zu sehen?
eran otzap
128

Die richtige Antwort ist eigentlich so einfach. Sie müssen nichts auschecken und auch nicht auf COMMIT_HASH-Hacks zurückgreifen (die auf Cedar Stack nicht funktionieren). Alles was Sie tun müssen ist:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master
Dolzenko
quelle
Dies zeigt Ihnen also die Version, auf die ein bestimmtes Remote-Repository verweist.
EE33
12
Um die Ausgabe dieser Nachricht zu übernehmen und das Git-Commit-Protokoll und den Textdifferenz leicht zu sehen: git ls-remote heroku | awk 'END{print $1}' | xargs git show
Bobby Norton
@ BobbyNortons Kommentar ist hier die direkte Antwort. Nett.
Ben Hull
45

Vielleicht möchten heroku releasesSie jetzt und Sie werden wie 5 Commits sehen. zumindest ein Anfang.

pjammer
quelle
1
Vielen Dank. Dies zeigt mir tatsächlich, was ich herausfinden möchte (nach einem Rollback, was tatsächlich läuft).
Cymen
24

wie wäre es mit

git log heroku/master
eweb
quelle
Abhängig davon, wie Sie bereitstellen, wird die masterZweigstellenreferenz möglicherweise auf den bereitgestellten SHA aktualisiert oder nicht.
Justin
11

Wenn Sie in die Situation geraten sind, in der ein Mitarbeiter Ihre Heroku-App auf eine Version zurückgesetzt hat, die nicht angezeigt wird heroku releases weil er nur zwei Versionen verfolgt ... das Auschecken von Heroku / Master Methode hilft nicht, weil HEAD nicht mehr das ist, was bereitgestellt wird.

die undokumentierten zur Rettung:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"
Kenichi
quelle
Das ist süß, aber gibt es eine Möglichkeit, das letzte Git-Commit zu bekommen? Ich habe überprüft, dass die ENV keine Variable hat, die ich für das Datum verwenden kann.
David
10
Dies funktioniert bei Cedar nicht mehr, wenn es einen Ersatz gibt?
Dolzenko
Ich bekomme 'heroku console' has been disabled( devcenter.heroku.com/changelog-items/109 ). Ich habe es versucht, heroku run "ENV['COMMIT_HASH']"aber ich verstehe bash: ENV[COMMIT_HASH]: command not found. Wenn ich benutze, echobekomme ich den String ENV[COMMIT_HASH].
Guyaloni
Sie können durch Ausführen auf die Rails-Konsole auf dem Cedar-Stack zugreifen heroku run consoleund durch Ausführen sehen, was sich in der ENV['COMMIT_HASH']Variablen befindet heroku run echo $ENV['COMMIT_HASH'](da es sich um eine Umgebungsvariable handelt, benötigen Sie das '$' - ähnlich wie echo $PATH).
Schräg
-1

Heroku verwendet einfaches altes Git darunter, also ..

Zeigen Sie die letzten 5 Commits für den aktuellen Zweig an: git log -5

show commit history via Git's gui: gitk

Aktuellen Status anzeigen (es wird angezeigt, ob Sie nicht festgeschriebene Dateien haben): git status

mj101
quelle