Commande Git pour afficher l'identifiant de validation HEAD?

251

Quelle commande puis-je utiliser pour imprimer l'ID de validation de HEAD?

Voici ce que je fais à la main:

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

Mais j'ai besoin d'un script qui peut diriger de manière fiable la sortie d'une commande vers un fichier texte de telle sorte que le fichier texte contienne exactement l'identifiant de validation de HEAD (ni plus ni moins, et pas seulement une référence). Quelqu'un peut-il aider?

Andrew Arnott
la source
J'ai une question similaire avant. Et il a été bien répondu ici: stackoverflow.com/questions/44994626/…
smwikipedia

Réponses:

451

Utilisez la commande:

git rev-parse HEAD

Pour la version courte:

git rev-parse --short HEAD
Randal Schwartz
la source
34
Pour tous ceux qui recherchent la version courte du hachage, git rev-parse --short HEADcela fonctionnera.
mgarciaisaia
45
git log -1

pour l'ID de validation uniquement

git log | head -n 1 
cyb0k
la source
Merci, c'est facile
eC Droid
15

Vieux fil, toujours pour référence future ... :) même après les travaux

git show-ref --head

par défaut, HEAD est filtré. Attention cependant à suivre; pluriel "têtes" avec un 's' à la fin. La commande suivante montre les branches sous "refs / heads"

 git show-ref --heads
Abhijit Mazumder
la source
4
en utilisant ces commandes dans un (grand) dépôt git, j'obtiens deux lignes de git show-ref --headset 6290 lignes de git show-ref --head. donc si vous ne voulez qu'un seul hachage, cela ne donne peut-être pas le résultat souhaité.
Remigius Stalder
7

Vous pouvez spécifier des git logoptions pour afficher uniquement le dernier commit, -1et un format qui inclut uniquement l'ID de commit, comme ceci:

git log -1 --format=%H

Si vous préférez l'ID de validation raccourci:

git log -1 --format=%h

JotaBe
la source
5

Jouez avec Bash:

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

Selon https://git-scm.com/docs/git-log , pour une sortie plus jolie dans la console, vous pouvez utiliser l' argument --decorate de git-log :

git log --pretty=oneline --decorate

imprimera:

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
la source
0

git rev-parse --abbrev-ref HEAD

Avdhut Mankavale
la source
1
Cela n'affiche pas l'ID de validation, mais plutôt tous les noms (comme les branches ou les balises) associés à la validation. Ce n'est pas ce que l'utilisateur d'origine voulait.
Asfand Qazi
0

Vous pouvez utiliser cette commande

$ git rev-list HEAD

Vous pouvez également utiliser la headcommande Unix pour afficher les dernières n HEADvalidations comme

$ git rev-list HEAD | head - 2

medmik
la source
0

Vous pouvez utiliser

git log -g branchname

pour voir les git refloginformations formatées comme la git logsortie

Stuti Verma
la source