Widziałem polecenia git describe
i git-name-rev
nie udało mi się zmusić ich do wyświetlenia więcej niż jednego znacznika.
Przykład: mam sha1 48eb354 i wiem, że znaczniki A i B wskazują na to. Chcę więc polecenia git, git {something} 48eb354
które generuje dane wyjściowe podobne do „A, B”. Nie interesuje mnie znajomość odniesień do innych tagów lub gałęzi, tylko dokładne dopasowania dla tagów.
-e 's/\^{}//'
-d
opcja włączonagit show-ref
. Z dokumentów „-d, --dereference” tagi wyłuskiwania również do identyfikatorów obiektów. Zostaną one wyświetlone z dołączonym „^ {}”.${ref}
, w tym tagów z adnotacjami:hash=$(git rev-parse "${ref}^0"); git show-ref --tags -d | sed -n -e 's,^'"${hash}"' refs/tags/\(.*\)^{}$',\1,p'
git tag --points-at HEAD
Pokazuje wszystkie tagi w HEAD, możesz także zastąpić HEAD dowolnym id sha1.
źródło
Możesz użyć:
który pokazuje wszystkie tagi w określonym zatwierdzeniu. Może być używany zamiast:
który jest dostępny tylko od 1.7.10.
źródło
--contains
również pojawia się znacznie wolniej niż--points-at
(czas wykonania 7-8s vs <1s)Szkoda, że nie da się tego łatwiej zrobić. Kolejna flaga
git tag
włączająca identyfikatory zatwierdzeń mogłabygit for-each-ref
naturalnie wyrazić to wywołanie.źródło
Następujące polecenie wykonuje zadanie, ale bezpośrednio analizuje zawartość katalogu .git i dlatego może się zepsuć, jeśli zmieni się format repozytorium git.
źródło
Do bieżącego zatwierdzenia możesz użyć
źródło