W Git, jak dowiedzieć się, jaka jest moja obecna wersja?

167

Chcę tylko wiedzieć, jaki jest mój aktualny numer wersji.

TIMEX
źródło
Znalazłem to pytanie, gdy szukałem sposobu na pobranie bieżącej wersji, aby użyć jej w dalszych poleceniach git. Ale kiedy przeczytałem odpowiedzi, zorientowałem się: „Och, czekaj, nie potrzebuję tego, mogę po prostu użyć HEAD.”
Antoine Pinsard

Odpowiedzi:

228

Co rozumiesz przez „numer wersji”? Dość często oznacza się zatwierdzenie numerem wersji, a następnie używa

$ git describe --tags

aby zidentyfikować bieżący HEAD zapisując wszystkie tagi. Jeśli masz na myśli, że chcesz poznać wartość skrótu bieżącego HEAD, prawdopodobnie chcesz:

$ git rev-parse HEAD

lub dla skrótu wersji:

$ git rev-parse --short HEAD

Często wystarczy:

$ cat .git/refs/heads/${branch-master}

ale to nie jest wiarygodne, ponieważ referencja może być zapakowana.

William Pursell
źródło
8
Referencje mogą być zapakowane .git/packed-refs, więc prawdopodobnie powinieneś unikać bezpośredniego dostępu .git/refs/. Po prostu użyj git rev-parse master(lub git rev-parse refs/heads/masterjeśli musisz być całkowicie jednoznaczny).
Chris Johnsen,
108

git log -1Myślę, że jest wiele sposobów, z których jest najłatwiejszy i najpowszechniejszy

manojlds
źródło
1
Jak sprawić, by plik stał się poprzednią wersją?
TIMEX
1
może chcesz git checkout HEAD ^ - nazwa pliku
manojlds Kwietnia
2
btw, to daje DUŻO WIĘCEJ niż tylko bieżąca wersja i będziesz musiał ją przeanalizować w konsekwencji (więc nie jest to najlepsze / najłatwiejsze / powszechne rozwiązanie,
imho
36

To daje tylko wersję.

git rev-parse HEAD
htanata
źródło
Myślę, że to najlepsza odpowiedź, ponieważ nie jest zależna od implementacji. Odpowiedź Williama „cat .git / refs / heads / master” zapewni tę samą wartość, ale nie ma gwarancji, że będzie działać w przyszłości, jeśli implementacja się zmieni.
Thagomizer
Zgoda, to najlepsza odpowiedź. Krótka wzmianka o tej --shortopcji sprawiłaby, że byłaby idealna.
Bobby Jack
15

Daje to kilka pierwszych cyfr skrótu i ​​są one na tyle unikalne, że można ich użyć jako, powiedzmy, numeru wersji.

git rev-parse --short HEAD

Ken McConnell
źródło
0

poniżej będzie działać z każdą wcześniej opublikowaną wersją, nie tylko z HEAD

dla skróconego skrótu wersji:

git log -1 --pretty=format:%h

dla długiego skrótu rewizji:

git log -1 --pretty=format:%H
Alexey Bychko
źródło