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.