684 votos

Cómo recuperar el valor hash de la actual commit Git?

Actualmente estoy ocupado migran fuera de la versioncontrol parte de Team Foundation Server para Git. (¿Por qué estoy de migrar es una historia diferente ;^) sin Embargo, me gustaría conservar (por ahora) de la capacidad de enlace de Git conjuntos de cambios a workitems almacenados en TFS.

Ya escribí una herramienta (con un gancho de Git) en la que me puedo inyectar workitemidentifiers en el mensaje de un conjunto de cambios Git.

Sin embargo, también me gustaría para almacenar el identificador de la Git commit (hash) en una costumbre TFS elementos de trabajo de campo. De esta forma, se puede examinar un workitem en TFS y ver lo que Git conjuntos de cambios están asociados con los elementos de trabajo.

¿Cómo puedo recuperar con facilidad el hash a partir de la actual commit Git?

987voto

Jakub Narębski Puntos 87537

A su vez arbitrario de referencia de objeto extendida en SHA-1, utilice simplemente git-rev-analizar, por ejemplo

git rev-parse HEAD

o

git rev-parse --verify HEAD

Nota al margen: Si desea activar referencias (ramas y etiquetas) en SHA-1, hay git-show-ref y git-para-cada-ref.

171voto

outofculture Puntos 1282

Si sólo desea acortar hash:

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

Además, el uso de las %H es otra forma de obtener el largo de hash.

64voto

Paul Pladijs Puntos 3630

Otro, el uso de git log:

git log -1 --format="%H"

Es muy similar a la de @outofculture aunque un poco más corto.

28voto

Deestan Puntos 7298

Para su integridad, ya que nadie ha propuesto todavía. .git/refs/heads/master es un archivo que contiene sólo una línea: el hash del último commit en master. Así se podía leer a partir de ahí.

O, como es el comando:

cat .git/refs/heads/master

Actualización:

Tenga en cuenta que git ahora compatible con el almacenamiento de algunas de cabeza refs en el pack-ref archivo en lugar de como un archivo en /refs/heads/ carpeta. https://www.kernel.org/pub/software/scm/git/docs/git-pack-refs.html

16voto

Robert Munteanu Puntos 31558

Uso git rev-list --max-count=1 HEAD

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X