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?


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

34
Każdy, kto szuka krótkiej wersji skrótu, git rev-parse --short HEADbędzie działał.
mgarciaisaia


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

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



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

0

git rev-parse --abbrev-ref HEAD


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


0

Możesz użyć

git log -g branchname

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.