Polecenie Git, aby wyświetlić identyfikator zatwierdzenia HEAD?

251

Jakiego polecenia mogę użyć do wydrukowania identyfikatora zatwierdzenia HEAD?

Oto, co robię ręcznie:

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

Potrzebuję jednak skryptu, który niezawodnie może przesłać dane wyjściowe niektórych poleceń do pliku tekstowego, tak aby plik tekstowy zawierał dokładnie identyfikator zatwierdzenia HEAD (nic więcej lub mniej, a nie tylko odwołanie). Czy ktoś może pomóc?

Andrew Arnott
źródło
Mam podobne pytanie wcześniej. I dobrze tutaj odpowiedziano: stackoverflow.com/questions/44994626/...
smwikipedia

Odpowiedzi:

451

Użyj polecenia:

git rev-parse HEAD

W przypadku krótkiej wersji:

git rev-parse --short HEAD
Randal Schwartz
źródło
34
Każdy, kto szuka krótkiej wersji skrótu, git rev-parse --short HEADbędzie działał.
mgarciaisaia
45
git log -1

tylko dla zatwierdzenia id

git log | head -n 1 
cyb0k
źródło
Dzięki, to proste
eC Droid
15

Stary wątek, do wglądu w przyszłości ... :) nawet kolejne prace

git show-ref --head

domyślnie HEAD jest odfiltrowywany. Uważaj jednak na następujące; liczba mnoga „głów” z „s” na końcu. Następujące polecenie pokazuje gałęzie w „refs / heads”

 git show-ref --heads
Abhijit Mazumder
źródło
4
używając tych poleceń w (dużym) repozytorium git, otrzymuję dwie linie git show-ref --headsi 6290 linii git show-ref --head. więc jeśli chcesz tylko jednego skrótu, może to nie dać zamierzonego rezultatu.
Remigius Stalder
7

Możesz określić git logopcje wyświetlania tylko ostatniego zatwierdzenia -1oraz format zawierający tylko identyfikator zatwierdzenia, taki jak ten:

git log -1 --format=%H

Jeśli wolisz skrócony identyfikator zatwierdzenia:

git log -1 --format=%h

JotaBe
źródło
5

Graj z Bash:

git show HEAD | sed -n 1p | cut -d " " -f 2
Ali Moreno
źródło
1

Według https://git-scm.com/docs/git-log , aby uzyskać ładniejsze dane wyjściowe w konsoli, możesz użyć --decorate argumentu polecenia git-log :

git log --pretty=oneline --decorate

wydrukuje:

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
źródło
0

git rev-parse --abbrev-ref HEAD

Avdhut Mankavale
źródło
1
Nie pokazuje to identyfikatora zatwierdzenia, ale raczej nazwy (takie jak gałęzie lub tagi) powiązane z zatwierdzeniem. Nie tego chciał pierwotny użytkownik.
Asfand Qazi
0

Możesz użyć tego polecenia

$ git rev-list HEAD

Możesz także użyć headpolecenia Unix, aby wyświetlić najnowsze n HEADzatwierdzenia, takie jak

$ git rev-list HEAD | head - 2

medmik
źródło
0

Możesz użyć

git log -g branchname

aby zobaczyć git refloginformacje sformatowane jak dane git logwyjściowe

Stuti Verma
źródło