Comment afficher la révision Git distante sur Heroku

85

Pour le déploiement sur Heroku, j'utilise git push heroku master. Mais comment voir quelle révision j'ai poussé vers heroku? (Je doute souvent si j'ai poussé la version récente vers le haut)

Pour ceux qui ne le connaissent pas, le script de création d'Heroku génère un référentiel git distant vers lequel vous poussez. Lors de la poussée, le code est déployé par magie.

Heroku ajoute un référentiel distant au référentiel local sous la forme:

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

Plus d'informations dans le manuel de Heroku "Déploiement avec Git"

La question est: Comment puis-je voir la dernière version dans le référentiel Heroku?

Jesper Rønn-Jensen
la source

Réponses:

63

Si vous venez de pousser et que vous voulez vous assurer que vous êtes à jour, vous pouvez simplement exécuter git remote show herokuet vous verrez une sortie similaire à celle-ci:

* 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)

Celui (up to date)à la fin sera remplacé par (fast forwardable)s'il n'est pas à jour.

Ou, si vous souhaitez voir le journal de validation complet pour la télécommande heroku, la seule façon dont je sais comment est de le vérifier d'abord. git checkout heroku/mastervous donnera le hachage de commit actuel et le commentaire de commit:, HEAD is now at <short commit hash>... <commit comment>et git logvous donnera le reste de l'histoire.

Brock Batsell
la source
Merci beaucoup pour cette réponse! Je le cherchais partout.
tbaums
3
Ne vous dit pas vraiment l'arbitre
Obie
existe-t-il un moyen de voir les fichiers eux-mêmes en ligne comme dans un dépôt github?
eran otzap le
128

La bonne réponse est en fait si simple. Vous n'avez rien à vérifier, ni à recourir aux hacks COMMIT_HASH (qui ne fonctionnent pas sur la pile Cedar). Tout ce que vous avez à faire est:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master
Dolzenko
la source
donc cela vous montrera la version vers laquelle un référentiel distant particulier est pointé?
EE33
12
Pour prendre la sortie de ce message et voir facilement le journal de validation git et les différences textuelles: git ls-remote heroku | awk 'END{print $1}' | xargs git show
Bobby Norton
Le commentaire de @ BobbyNorton est la réponse directe ici. Agréable.
Ben Hull
45

Vous pouvez maintenant vouloir heroku releaseset vous verrez comme 5 commits. un début au moins.

pjammer
la source
1
Merci. Cela me montre en fait ce que je veux savoir (après avoir effectué une restauration, ce qui est réellement en cours d'exécution).
Cymen
24

qu'en est-il de

git log heroku/master
brebis
la source
Selon la façon dont vous déployez, la masterréférence de branche peut ou non être mise à jour vers le SHA qui a été déployé.
Justin le
11

si vous êtes confronté à la situation, comme je viens de le faire, où un collègue a restauré votre application heroku vers une version qui ne s'affiche pas heroku releasesparce qu'il ne suit que 2 versions ... la vérification de heroku / master La méthode n'aidera pas, car HEAD n'est plus ce qui est déployé.

les sans-papiers à la rescousse:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"
Kenichi
la source
c'est gentil mais y a-t-il un moyen d'obtenir le dernier commit git. J'ai vérifié que l'ENV n'a pas de variable que je peux utiliser pour la date.
David
10
Cela ne fonctionne plus sur Cedar, s'il y a un remplacement?
dolzenko
Je reçois 'heroku console' has been disabled( devcenter.heroku.com/changelog-items/109 ). J'ai essayé heroku run "ENV['COMMIT_HASH']"mais j'obtiens bash: ENV[COMMIT_HASH]: command not found. Quand j'utilise, echoj'obtiens la chaîne ENV[COMMIT_HASH].
guyaloni
Vous pouvez accéder à la console Rails sur la pile Cedar en exécutant heroku run consoleet vous pouvez voir ce qu'il y a à l'intérieur de la ENV['COMMIT_HASH']variable en exécutant heroku run echo $ENV['COMMIT_HASH'](puisqu'il s'agit d'une variable d'environnement, vous avez besoin du '$' - un peu comme echo $PATH).
oblique
-1

heroku utilise le vieux Git en dessous, donc ..

afficher les 5 derniers commits sur la branche actuelle: git log -5

afficher l'historique des commit via l'interface graphique de Git: gitk

afficher l'état actuel (il affichera si vous avez des fichiers non validés): git status

mj101
la source