¿Comando Git para mostrar la ID de confirmación HEAD?

250

¿Qué comando puedo usar para imprimir la identificación de confirmación de HEAD?

Esto es lo que estoy haciendo a mano:

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

Pero necesito un script que pueda canalizar de manera confiable la salida de algún comando a un archivo de texto de manera que el archivo de texto contenga exactamente la identificación de confirmación de HEAD (nada más o menos, y no solo una referencia). ¿Alguien puede ayudar?

Andrew Arnott
fuente
Tengo una pregunta similar antes. Y fue bien respondido aquí: stackoverflow.com/questions/44994626/…
smwikipedia

Respuestas:

450

Usa el comando:

git rev-parse HEAD

Para la versión corta:

git rev-parse --short HEAD
Randal Schwartz
fuente
34
Para cualquiera que busque la versión corta del hash, git rev-parse --short HEADfuncionará.
mgarciaisaia
45
git log -1

solo por commit id

git log | head -n 1 
cyb0k
fuente
Gracias, es fácil
eC Droid
15

Hilo antiguo, aún para referencia futura ... :) incluso después de trabajos

git show-ref --head

por defecto HEAD se filtra. Sin embargo, tenga cuidado al seguir; "cabezas" plurales con una 's' al final. El siguiente comando muestra ramas bajo "referencias / cabezas"

 git show-ref --heads
Abhijit Mazumder
fuente
44
usando estos comandos en un repositorio git (grande), obtengo dos líneas git show-ref --headsy 6290 líneas git show-ref --head. así que si quieres un solo hash, esto quizás no sea el resultado deseado.
Remigius Stalder
7

Puede especificar git logopciones para mostrar solo la última confirmación, -1y un formato que incluya solo la ID de confirmación, como esta:

git log -1 --format=%H

Si prefiere la ID de confirmación abreviada:

git log -1 --format=%h

JotaBe
fuente
5

Juega con Bash:

git show HEAD | sed -n 1p | cut -d " " -f 2
Ali Moreno
fuente
1

De acuerdo con https://git-scm.com/docs/git-log , para obtener una salida más bonita en la consola, puede usar el argumento --decorate del comando git-log :

git log --pretty=oneline --decorate

imprimirá:

2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
52c1cdcb1988d638ec9e05a291e137912b56b3af test
Ilya Slyisarenko
fuente
0

git rev-parse --abbrev-ref HEAD

Avdhut Mankavale
fuente
1
Esto no muestra ID de confirmación, sino más bien cualquier nombre (como ramas o etiquetas) asociado con la confirmación. Esto no es lo que el usuario original quería.
Asfand Qazi
0

Puedes usar este comando

$ git rev-list HEAD

También puede usar el headcomando Unix para mostrar las últimas n HEADconfirmaciones como

$ git rev-list HEAD | head - 2

medmik
fuente
0

Puedes usar

git log -g branchname

para ver git refloginformación formateada como la git logsalida

Stuti Verma
fuente