En Git, ¿cómo puedo determinar cuál es mi revisión actual?

167

Solo quiero saber cuál es mi número de versión actual.

TIMEX
fuente
Encontré esta pregunta mientras buscaba una forma de obtener la revisión actual para usarla en otros comandos git. Pero cuando leí las respuestas, lo descubrí: "Oh, espera, no lo necesito, solo puedo usarlo HEAD".
Antoine Pinsard

Respuestas:

228

¿Qué quieres decir con "número de versión"? Es bastante común etiquetar un commit con un número de versión y luego usar

$ git describe --tags

para identificar el actual HEAD wrt cualquier etiqueta. Si quiere decir que desea conocer el hash del HEAD actual, probablemente quiera:

$ git rev-parse HEAD

o para el breve hash de revisión:

$ git rev-parse --short HEAD

A menudo es suficiente hacer:

$ cat .git/refs/heads/${branch-master}

pero esto no es confiable ya que la referencia puede estar empacada.

William Pursell
fuente
8
Las referencias pueden estar empaquetadas .git/packed-refs, por lo que probablemente debería evitar el acceso directo .git/refs/. Solo use git rev-parse master(o git rev-parse refs/heads/mastersi necesita ser completamente inequívoco).
Chris Johnsen el
108

Hay muchas formas en que git log -1es la más fácil y la más común, creo

manojlds
fuente
1
¿Cómo hago que un archivo se convierta en una versión anterior?
TIMEX
1
quizás quieras git checkout HEAD ^ - nombre de archivo
manojlds
2
por cierto, esto da MUCHO MÁS que solo la revisión actual y tendrá que analizarla en consecuencia (por lo tanto, no es la mejor / más fácil / solución común, en mi opinión)
RAM237
36

Esto te da solo la revisión.

git rev-parse HEAD
htanata
fuente
Creo que esta es la mejor respuesta, ya que no depende de la implementación. La respuesta de William "cat .git / refs / heads / master" proporcionará el mismo valor, pero no hay garantía de que funcione en el futuro si la implementación cambia.
Thagomizer
De acuerdo, esta es la mejor respuesta. Una breve mención de la --shortopción lo haría perfecto.
Bobby Jack
15

Esto le proporciona los primeros dígitos del hash y son lo suficientemente únicos como para usarlos como, por ejemplo, un número de versión.

git rev-parse - HEAD corto

Ken McConnell
fuente
0

a continuación funcionará con cualquier revisión anterior, no solo HEAD

para hash de revisión abreviado:

git log -1 --pretty=format:%h

para hash de revisión larga:

git log -1 --pretty=format:%H
Alexey Bychko
fuente