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.
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
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,
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.
HEAD
.”Odpowiedzi:
Co rozumiesz przez „numer wersji”? Dość często oznacza się zatwierdzenie numerem wersji, a następnie używa
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:
lub dla skrótu wersji:
Często wystarczy:
ale to nie jest wiarygodne, ponieważ referencja może być zapakowana.
źródło
.git/packed-refs
, więc prawdopodobnie powinieneś unikać bezpośredniego dostępu.git/refs/
. Po prostu użyjgit rev-parse master
(lubgit rev-parse refs/heads/master
jeśli musisz być całkowicie jednoznaczny).git log -1
Myślę, że jest wiele sposobów, z których jest najłatwiejszy i najpowszechniejszyźródło
To daje tylko wersję.
źródło
--short
opcji sprawiłaby, że byłaby idealna.Daje to kilka pierwszych cyfr skrótu i są one na tyle unikalne, że można ich użyć jako, powiedzmy, numeru wersji.
źródło
poniżej będzie działać z każdą wcześniej opublikowaną wersją, nie tylko z HEAD
dla skróconego skrótu wersji:
dla długiego skrótu rewizji:
źródło