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 git@heroku.com: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?

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

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.


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

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.


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

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"

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.