2010-02-17 29 views
75

Para implementar en Heroku, uso git push heroku master. ¿Pero cómo veo qué revisión he pasado a heroku? (A menudo tengo dudas si empujé la versión más reciente)Cómo ver la revisión remota de Git en Heroku

Para aquellos que no estén familiarizados con ella, la secuencia de comandos de creación de Heroku genera un repositorio de git remoto al que presionas. Al presionar, el código se implementa mágicamente.

Heroku añade un repositorio remoto a la local en la forma:

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

Más información en el manual "Deploying with Git"

Cuestión de Heroku es: ¿Cómo veo versión más reciente en el repositorio de Heroku?

Respuesta

56

Si acaba empujado y quiere asegurarse de que está hasta a la fecha, a continuación, puedes ejecutar git remote show heroku y verá una salida similar a la siguiente:

* 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) en el final será reemplazado por (fast forwardable) si no está actualizado.

O, si quiere ver el registro de confirmación completo para el control remoto heroku, la única forma en que sé cómo es verificarlo primero. git checkout heroku/master le dará el hash de confirmación actual y cometer comentario: HEAD is now at <short commit hash>... <commit comment> y git log le dará el resto de la historia.

+0

¡Muchas gracias por esta respuesta! Lo estaba buscando en todas partes. – tbaums

+3

En realidad, no le dice la ref – Obie

+0

Esto no funciona en Cedar. –

12

si te has encontrado con la situación, como acabo de ver, donde un compañero de trabajo ha retrotraído tu aplicación heroku a un lanzamiento que no se muestra en heroku releases porque solo hace un seguimiento de 2 lanzamientos ... el El checkout del método heroku/master no ayudará, porque HEAD ya no es lo que se implementa.

los indocumentados al rescate:

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

eso es dulce, pero ¿hay alguna forma de obtener el último commit de git?Comprobé que ENV no tiene ninguna variable que pueda usar para la fecha. – David

+0

+1 de lujo, lo usará – dolzenko

+10

Esto ya no funciona en Cedar, si hay algún reemplazo? – dolzenko

122

La respuesta correcta es en realidad tan simple. No necesita realizar ningún pago, tampoco tiene que recurrir a hackers COMMIT_HASH (que no funcionan en la pila de Cedar). Todo lo que necesita hacer es: git ls-remote <remote>

> git ls-remote heroku 
ddaszxcewb585d3a3c00de816a197b14462791a3  HEAD 
ddaszxcewb585d3a3c00de816a197b14462791a3  refs/heads/master 
+0

entonces, ¿esto le mostrará la versión a la que apunta un repositorio remoto en particular? –

+12

Para tomar el resultado de este mensaje y ver fácilmente el registro de confirmación de git y textual diff: 'git ls-remote heroku | awk 'END {print $ 1}' | xargs git show' –

+0

@ El comentario de BobbyNorton es la respuesta directa aquí. Bonito. – Beejamin

43

Ahora puede querer heroku releases y verá como 5 confirmaciones. un comienzo al menos.

+1

Gracias. Esto realmente me muestra lo que quiero averiguar (después de realizar una reversión de lo que realmente está ejecutándose). – Cymen

+1

¡Esta es la respuesta más oficial e informativa! – brendan

18

¿qué pasa con

git log heroku/master 
+1

Creo que esta es la respuesta correcta ... – Polak

+0

Dependiendo de cómo implemente, la referencia de la rama 'master' puede actualizarse o no al SHA que se implementó. – Justin

-1

heroku está utilizando el viejo y simple Git debajo, así ..

muestran las últimas 5 commit en rama actual: git log -5

espectáculo de cometer la historia a través de interfaz gráfica de usuario de Git: gitk

ver el estado actual (se mostrará si tiene una y archivos sin compromiso): git status