92 votes

Comment voir une révision Git distante sur Heroku

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

Pour ceux qui ne le connaissent pas, la fonction de création de script d'Heroku génère un dépôt git distant vers lequel vous poussez. Une fois poussé, le code est déployé comme par magie.

Heroku ajoute un dépôt distant au dépôt local dans le formulaire :

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

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

Question : Comment puis-je voir la dernière version dans le dépôt Heroku ?

0 votes

Notez que la dernière version dans le dépôt Heroku n'est pas nécessairement la même que la version en production. Si vous exécutez heroku releases:rollback La version en production changera, mais le dépôt Heroku restera absolument le même. Utiliser heroku:releases pour voir ce qui est en production.

129voto

dolzenko Points 2098

La bonne réponse est en fait très simple. Vous n'avez pas besoin de vérifier quoi que ce soit, ni de recourir à des astuces 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

0 votes

Cela vous permettra donc de connaître la version vers laquelle un dépôt distant particulier est pointé ?

12 votes

Pour prendre la sortie de ce message et voir facilement le journal des livraisons git et le diff textuel : git ls-remote heroku | awk 'END{print $1}' | xargs git show

0 votes

Le commentaire de @BobbyNorton est la réponse directe à cette question. Bien vu.

66voto

Brock Batsell Points 3505

Si vous venez de pousser et que vous voulez vous assurer que vous êtes à jour, vous pouvez simplement lancer git remote show heroku et vous obtiendrez un résultat similaire à celui-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)

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

Ou, si vous voulez voir le journal de livraison complet pour le heroku remote, la seule façon que je connaisse est de le vérifier d'abord. git checkout heroku/master vous donnera le hash et le commentaire du commit actuel : HEAD is now at <short commit hash>... <commit comment> et git log vous donnera la suite de l'histoire.

0 votes

Merci beaucoup pour cette réponse ! Je l'ai cherchée partout.

3 votes

N'indique pas réellement l'arbitre

0 votes

Y a-t-il un moyen de voir les fichiers eux-mêmes en ligne comme dans un repo github ?

46voto

pjammer Points 5042

Vous pouvez maintenant souhaiter heroku releases et vous verrez environ 5 engagements. un début au moins.

2 votes

Merci. Cela me montre en fait ce que je veux découvrir (après avoir fait un rollback de ce qui est actuellement en cours d'exécution).

24voto

user1902135 Points 430

À propos de

git log heroku/master

0 votes

En fonction de la manière dont vous déployez, le master La référence de la branche peut ou non être mise à jour en fonction du SHA qui a été déployé.

11voto

kenichi Points 332

Si, comme je viens de le faire, vous avez été confronté à une situation où un collègue a rétabli votre application Heroku à une version qui n'apparaît pas dans la base de données heroku releases parce qu'ils ne gardent trace que de 2 versions... le checkout de la méthode heroku/master n'aidera pas, parce que HEAD n'est plus ce qui est déployé.

les sans-papiers à la rescousse :

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

0 votes

C'est bien mais y a t'il un moyen de récupérer le dernier commit git. j'ai vérifié l'ENV qui n'a pas de variable que je puisse utiliser pour la date.

10 votes

Cela ne fonctionne plus sur Cedar, y a-t-il une solution de remplacement ?

0 votes

J'obtiens 'heroku console' has been disabled ( devcenter.heroku.com/changelog-items/109 ). J'ai essayé heroku run "ENV['COMMIT_HASH']" mais je reçois bash: ENV[COMMIT_HASH]: command not found . Lorsque j'utilise echo J'obtiens la chaîne ENV[COMMIT_HASH] .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X