Pregunta ¿Cómo recuperar el hash para la confirmación actual en Git?


Me gustaría retener (por ahora) la capacidad de vincular los conjuntos de cambios de Git a los elementos de trabajo almacenados en TFS.

Ya escribí una herramienta (usando un gancho de Git) en la que puedo inyectar identificadores de elementos de trabajo en el mensaje de un conjunto de cambios de Git.

Sin embargo, también me gustaría almacenar el identificador de la confirmación de Git (el hash) en un campo de elemento de trabajo de TFS personalizado. De esta forma puedo examinar un elemento de trabajo en TFS y ver qué conjuntos de cambios de Git están asociados con el elemento de trabajo.

¿Cómo puedo recuperar fácilmente el hash de la confirmación actual de Git?


1415
2018-06-04 08:42


origen


Respuestas:


Para convertir referencias de objetos extendidos arbitrarios en SHA-1, use simplemente git-rev-parse, por ejemplo

git rev-parse HEAD

o

git rev-parse --verify HEAD

Nota al margen: Si quieres voltear referencias (ramas y etiquetas) en SHA-1, hay git show-ref y git for-each-ref.


2068
2018-06-04 09:05



Si solo quieres el hash acortado:

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

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


324
2017-09-30 23:32



Otro, usando el registro de git:

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

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


116
2017-11-21 18:48



Para completar, ya que nadie lo ha sugerido todavía. .git/refs/heads/master es un archivo que contiene solo una línea: el hash de la última confirmación en master. Entonces podrías leerlo desde allí.

O, como comando:

cat .git/refs/heads/master

Actualizar:

Tenga en cuenta que ahora git admite el almacenamiento de algunos cabezales ref en el archivo pack-ref en lugar de como un archivo en la carpeta / refs / heads /. https://www.kernel.org/pub/software/scm/git/docs/git-pack-refs.html


61
2017-10-16 11:34



Para obtener el SHA completo:

$ git rev-parse HEAD
cbf1b9a1be984a9f61b79a05f23b19f66d533537

Para obtener la versión abreviada:

$ git rev-parse --short HEAD
cbf1b9a

58
2017-07-29 20:04



Siempre hay git describe también. Por defecto te da -

john@eleanor:/dev/shm/mpd/ncmpc/pkg (master)$ git describe 
release-0.19-11-g7a68a75

34
2017-08-26 10:43



Commit hash

git show -s --format=%H

Hash de confirmación abreviado

git show -s --format=%h

Hacer clic aquí para más git show ejemplos.


25
2018-03-27 19:33



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


24
2018-06-04 08:48



Si necesita almacenar el hash en una variable durante un script, puede usar

last_commit=$(git rev-parse HEAD)

O, si solo quieres los primeros 10 caracteres (como github.com)

last_commit=$(git rev-parse HEAD | cut -c1-10) 

18
2017-07-15 16:04