Come visualizzare la revisione remota di Git su Heroku


85

Per la distribuzione su Heroku, utilizzo git push heroku master. Ma come faccio a vedere quale revisione ho inviato a heroku? (Sono spesso in dubbio se ho spinto verso l'alto la versione recente)

Per coloro che non lo conoscono, lo script di creazione di Heroku genera un repository git remoto a cui eseguire il push. Su push, il codice viene distribuito magicamente.

Heroku aggiunge un repository remoto a quello locale nella forma:

$ git remote add heroku git@heroku.com:appname.git

Maggiori informazioni nel manuale di Heroku "Deploying with Git"

La domanda è: come posso vedere l'ultima versione nel repository Heroku?

Risposte:


63

Se hai appena premuto e vuoi assicurarti di essere aggiornato, puoi semplicemente eseguire git remote show herokue vedrai un output simile a questo:

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

Quello (up to date)alla fine verrà sostituito da (fast forwardable)se non è aggiornato.

Oppure, se vuoi vedere il registro completo dei commit per il telecomando heroku, l'unico modo che conosco è controllarlo prima. git checkout heroku/masterti fornirà l'hash di commit corrente e il commento di commit: HEAD is now at <short commit hash>... <commit comment>e git logti fornirà il resto della storia.


Grazie mille per questa risposta! Lo cercavo ovunque.
tbaums

3
In realtà non ti dice l'arbitro
Obie

c'è un modo per vedere i file stessi online come in un repository GitHub?
eran otzap

128

La risposta corretta è in realtà così semplice. Non è necessario effettuare il checkout, né ricorrere agli hack COMMIT_HASH (che non funzionano sullo stack Cedar). Tutto quello che devi fare è:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master

quindi questo ti mostrerà la versione a cui è puntato un particolare repository remoto?
EE33

12
Per prendere l'output di questo messaggio e vedere facilmente il log dei commit di git e il diff testuale: git ls-remote heroku | awk 'END{print $1}' | xargs git show
Bobby Norton

Il commento di @ BobbyNorton è la risposta diretta al punto qui. Bello.
Ben Hull

45

Ora potresti volerlo heroku releasese vedrai come 5 commit. almeno un inizio.


1
Grazie. Questo effettivamente mi mostra cosa voglio scoprire (dopo aver eseguito un rollback ciò che è effettivamente in esecuzione).
Cymen

24

che dire

git log heroku/master

A seconda di come si distribuisce, il masterriferimento al ramo può essere aggiornato o meno allo SHA che è stato distribuito.
Justin,

11

se ti sei imbattuto nella situazione, come ho appena fatto, in cui un collega ha ripristinato la tua app heroku a una versione che non viene visualizzata heroku releasesperché tiene traccia solo di 2 versioni ... il checkout di heroku / master il metodo non aiuta, perché HEAD non è più ciò che viene distribuito.

gli irregolari in soccorso:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"

è dolce ma c'è un modo per ottenere l'ultimo commit di git. ho controllato che l'ENV non abbia alcuna variabile che posso usare per la data.
David

10
Questo non funziona più su Cedar, se c'è qualche sostituzione?
dolzenko

Ottengo 'heroku console' has been disabled( devcenter.heroku.com/changelog-items/109 ). Ho provato heroku run "ENV['COMMIT_HASH']"ma ottengo bash: ENV[COMMIT_HASH]: command not found. Quando lo uso echoottengo la stringa ENV[COMMIT_HASH].
guyaloni

Puoi accedere alla console di Rails sullo stack Cedar eseguendo l'esecuzione heroku run consolee puoi vedere cosa c'è all'interno della ENV['COMMIT_HASH']variabile eseguendo heroku run echo $ENV['COMMIT_HASH'](poiché è una variabile di ambiente, hai bisogno di '$' - molto simile echo $PATH).
inclinazione

-1

heroku sta usando il vecchio Git sotto, quindi ..

mostra gli ultimi 5 commit sul ramo corrente: git log -5

mostra la cronologia dei commit tramite la gui di Git: gitk

visualizza lo stato corrente (verrà mostrato se hai file non registrati): git status

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.