Cómo ver la revisión remota de Git en Heroku

85

Para implementar en Heroku, utilizo git push heroku master. Pero, ¿cómo veo qué revisión subí a heroku? (A menudo tengo dudas si subí la versión reciente)

Para aquellos que no están familiarizados con él, el script de creación de Heroku genera un repositorio de git remoto al que puede enviar. Al empujarlo, el código se implementa mágicamente.

Heroku agrega un repositorio remoto al local en la forma:

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

Más información en el manual de Heroku "Implementación con Git"

La pregunta es: ¿Cómo puedo ver la última versión en el repositorio de Heroku?

Jesper Rønn-Jensen
fuente

Respuestas:

63

Si acaba de presionar y desea asegurarse de estar actualizado, puede ejecutar git remote show herokuy verá un resultado similar a este:

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

Eso (up to date)al final será reemplazado por (fast forwardable)si no está actualizado.

O, si desea ver el registro de confirmación completo para el control remoto heroku, la única forma que conozco es comprobarlo primero. git checkout heroku/masterle dará el hash de confirmación actual y el comentario de confirmación:, HEAD is now at <short commit hash>... <commit comment>y git logle dará el resto de la historia.

Brock Batsell
fuente
¡Muchas gracias por esta respuesta! Lo estaba buscando por todas partes.
tbaums
3
En realidad no te dice el árbitro
Obie
¿Hay alguna forma de ver los archivos en línea como en un repositorio de github?
eran otzap
128

La respuesta correcta es realmente muy simple. No necesitas pagar nada, ni tienes que recurrir a los hacks COMMIT_HASH (que no funcionan en la pila Cedar). Todo lo que necesitas hacer es:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master
dolzenko
fuente
¿Entonces esto le mostrará la versión a la que apunta un repositorio remoto en particular?
EE33
12
Para tomar la salida de este mensaje y ver fácilmente el registro de confirmación de git y la diferencia textual: git ls-remote heroku | awk 'END{print $1}' | xargs git show
Bobby Norton
El comentario de @BobbyNorton es la respuesta directa aquí. Agradable.
Ben Hull
45

Es posible que ahora desee heroku releasesy verá como 5 confirmaciones. un comienzo al menos.

pjammer
fuente
1
Gracias. Esto realmente me muestra lo que quiero averiguar (después de hacer una reversión de lo que realmente se está ejecutando).
Cymen
24

qué pasa

git log heroku/master
eweb
fuente
Dependiendo de cómo se implemente, la masterreferencia de la rama puede actualizarse o no al SHA que se implementó.
Justin
11

si se ha encontrado con la situación, como acabo de hacer, en la que un compañero de trabajo revirtió su aplicación heroku a una versión que no aparece heroku releases porque solo realiza un seguimiento de 2 versiones ... el pago de heroku / master El método no ayudará, porque HEAD ya no es lo que se implementa.

los indocumentados al rescate:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"
Kenichi
fuente
eso es dulce, pero hay alguna forma de obtener el último compromiso de git. Verifiqué que ENV no tiene ninguna variable que pueda usar para la fecha.
David
10
Esto ya no funciona en Cedar, ¿si hay algún reemplazo?
dolzenko
Recibo 'heroku console' has been disabled( devcenter.heroku.com/changelog-items/109 ). Lo intenté heroku run "ENV['COMMIT_HASH']"pero lo consigo bash: ENV[COMMIT_HASH]: command not found. Cuando lo uso echo, obtengo la cadena ENV[COMMIT_HASH].
guyaloni
Puede acceder a la consola de Rails en la pila Cedar ejecutando heroku run consoley puede ver qué hay dentro de la ENV['COMMIT_HASH']variable ejecutándola heroku run echo $ENV['COMMIT_HASH'](dado que es una variable de entorno, necesita el '$', muy parecido echo $PATH).
sesgado
-1

heroku está usando Git simple y simple debajo, así que ...

muestra las últimas 5 confirmaciones en la rama actual: git log -5

muestre el historial de confirmación a través de la interfaz gráfica de usuario de Git: gitk

ver el estado actual (se mostrará si tiene archivos no comprometidos): git status

mj101
fuente