Comando Git per visualizzare l'ID commit HEAD?


250

Quale comando posso usare per stampare l'id di commit di HEAD?

Questo è quello che sto facendo a mano:

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

Ma ho bisogno di uno script in grado di reindirizzare in modo affidabile l'output di alcuni comandi in un file di testo in modo tale che il file di testo contenga esattamente l'id di commit di HEAD (niente di più o di meno, e non solo un riferimento). Qualcuno può aiutare?


Ho una domanda simile prima. Ed è stato ben risposto qui: stackoverflow.com/questions/44994626/...
smwikipedia

Risposte:


450

Usa il comando:

git rev-parse HEAD

Per la versione breve:

git rev-parse --short HEAD

34
Per chiunque cerchi la versione breve dell'hash, git rev-parse --short HEADfunzionerà.
Margarciaisaia,


15

Vecchio thread, ancora per riferimento futuro ... :) anche dopo lavori

git show-ref --head

per impostazione predefinita HEAD è filtrato. Fai attenzione a seguire comunque; "teste" plurali con una "s" alla fine. Il seguente comando mostra i rami in "refs / heads"

 git show-ref --heads

4
usando questi comandi in un (grande) repository git, ottengo due righe da git show-ref --headse 6290 righe da git show-ref --head. quindi se vuoi un solo hash, questo potrebbe non dare il risultato desiderato.
Remigius Stalder,

7

Puoi specificare le git logopzioni per mostrare solo l'ultimo commit -1e un formato che include solo l'ID commit, come questo:

git log -1 --format=%H

Se si preferisce l'ID commit abbreviato:

git log -1 --format=%h



1

Secondo https://git-scm.com/docs/git-log , per un output più grazioso nella console è possibile utilizzare l' argomento --decorate del comando git-log :

git log --pretty=oneline --decorate

stamperà:

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

0

git rev-parse --abbrev-ref HEAD


1
Questo non mostra l'ID commit, ma piuttosto qualsiasi nome (come rami o tag) associato al commit. Questo non è quello che voleva l'utente originale.
Asfand Qazi

0

Puoi usare questo comando

$ git rev-list HEAD

Puoi anche usare il headcomando Unix per mostrare gli ultimi n HEADcommit come

$ git rev-list HEAD | head - 2


0

Puoi usare

git log -g branchname

per visualizzare git refloginformazioni formattate come l' git logoutput

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.