Jak wyświetlić wszystkie tagi Git?


675

W moim repozytorium utworzyłem tagi przy użyciu następujących poleceń.

git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'

Jak wyświetlić wszystkie tagi w repozytorium?

Odpowiedzi:


954
git tag

powinno wystarczyć. Zobacz stronę podręcznika git tagman


Masz także:

git tag -l <pattern>

Wyświetl tagi z nazwami pasującymi do podanego wzorca (lub wszystkich, jeśli nie podano wzorca).
Wpisanie „git tag” bez argumentów zawiera także listę wszystkich tagów.


Niedawno („ Jak sortować tagi git? ”, Dla Git 2.0+)

git tag --sort=<type>

Sortuj w określonej kolejności.

Obsługiwany typ to:

  • refname” (porządek leksykograficzny),
  • version:refname ” lub „ v:refname” (nazwy znaczników są traktowane jak wersje).

Wstaw „”, aby odwrócić porządek sortowania.


Zawiera zarówno:

  • tagi z adnotacjami : pełne obiekty przechowywane w bazie danych Git. Są sprawdzone; zawierać nazwę tagger, adres e-mail i datę; mieć wiadomość oznaczającą; i mogą być podpisane i zweryfikowane za pomocą GNU Privacy Guard (GPG).
  • lekkie metki : prosty wskaźnik do istniejącego zatwierdzenia

Zanotuj artykuł Git Ready dotyczący tagowania odrzuca lekki tag.

Bez argumentów git tag tworzy „lekki” tag, który jest w zasadzie gałęzią, która nigdy się nie porusza.
Lekkie tagi są jednak nadal przydatne, być może do oznaczania znanej dobrej (lub złej) wersji lub szeregu zmian, które mogą być potrzebne w przyszłości.
Niemniej jednak prawdopodobnie nie chcesz wypychać tego rodzaju tagów .

Zwykle chcesz przynajmniej przekazać opcję -a, aby utworzyć niepodpisany znacznik, lub podpisać znacznik kluczem GPG za pomocą opcji -s lub -u.


Biorąc to pod uwagę, Charles Bailey zwraca uwagę, że „ git tag -m "..."” w rzeczywistości oznacza właściwy (niepodpisany) tag (opcja „-a ”), a nie lekki. Więc jesteś dobry w swoim pierwszym poleceniu.


Różni się to od:

git show-ref --tags -d

Która zawiera listę znaczników z ich zatwierdzeniami (patrz „ Lista znaczników Git, wyświetl skróty zatwierdzenia sha1 ”).
Zwróć uwagę na to -d, aby wyrejestrować obiekt znacznika z adnotacjami (który ma własne zatwierdzenie SHA1) i wyświetlić rzeczywiste oznakowane zatwierdzenie.

Podobnie git show --name-only <aTag>wyświetlałby tag i powiązane zatwierdzenie.


6
Prawdopodobnie warto dodać, że -m lub -F implikuje -a (jeśli nie podano -a, -s lub -u są podane jawnie. Nie możesz mieć wiadomości znacznika bez utworzenia „właściwego” obiektu znacznika.
CB Bailey

1
Uwaga do siebie: dzięki tej poprawce przekazuję 800000 (31 sierpnia 2018 r.) W sprawie Przepełnienia stosu, rok i miesiąc po osiągnięciu 700000 (6 sierpnia 2017 r . ) .
VonC

190

Aby wyświetlić tagi, wolę:

git tag -n

The -nFlaga wyświetla pierwszą linię wiadomości adnotacji wraz ze znacznikiem, lub pierwszy wiersz popełnić wiadomość jeśli znacznik nie jest odnotowany.

Możesz także zrobić, git tag -n5aby wyświetlić pierwsze 5 wierszy adnotacji.


48

git show-refJest również przydatny, ponieważ można bezpośrednio powiązać tagi z odpowiednimi zatwierdzeniami :

$ git tag
osgeolive-6.5
v8.0
...

$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...

1
Przyzwyczajony do Mercurial, hg tagspodoba mi się, że git show-refdaje mi tag ORAZ wersję.
Justin


15

Spróbuj zrobić git tagto powinno wystarczyć, jeśli nie starają się git fetchpotem git tag.


4
Myślę, że chodzi mu o to: Uruchomienie git tagpolecenia powinno wystarczyć, jeśli chcesz zobaczyć listę dostępnych tagów. Jeśli nie widzisz niektórych tagów, które Twoim zdaniem mogą istnieć na zdalnie, oznacza to, że tagi lokalne mogą nie być zsynchronizowane z pilotem. W takim przypadku najpierw pobierz najnowsze referencje / głowice zdalne git fetch, a następnie rzeczywiste git tag. Zwykle prowadzę jedno-liniowy projekt: $ git fetch -p && git tagtylko dla pewności, że patrzę na najnowsze i najlepsze.
demisx

11

Lista dostępnych tagów w Git jest prosta. Po prostu wpisz git tag(z opcjonalnym -llub --list).

$ git tag
v5.5
v6.5

Możesz także wyszukiwać tagi pasujące do określonego wzorca.

$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2

Pobieranie najnowszego tagu w repozytorium git

Polecenie znajduje najnowszy znacznik, który jest dostępny z zatwierdzenia. Jeśli znacznik wskazuje na zatwierdzenie, pokazany zostanie tylko znacznik. W przeciwnym razie, sufiks nazwy znacznika zawiera liczbę dodatkowych zatwierdzeń na górze oznaczonego obiektu i skróconą nazwę obiektu ostatniego zatwierdzenia.

git describe

Przy --abbrevustawieniu na 0to polecenie może być użyte do znalezienia najbliższego tagnamebez żadnego przyrostka:

git describe --abbrev=0

Inne przykłady:

git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch

Jak przycinać lokalne tagi git, które nie istnieją na pilocie

Mówiąc najprościej, jeśli próbujesz zrobić coś takiego git fetch -p -t, nie będzie działać, zaczynając od wersji git 1.9.4.

Istnieje jednak proste obejście, które nadal działa w najnowszych wersjach:

git tag -l | xargs git tag -d  // remove all local tags
git fetch -t                   // fetch remote tags

Polecenie związane z rev-list dało mi listę, ale zakończyło się błędem:v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
not2qubit

10

Aby zobaczyć szczegóły na temat najnowszego dostępnego tagu, którego czasami używam:

git show `git describe` --pretty=fuller

6

Jeśli chcesz sprawdzić nazwę tagu lokalnie, musisz przejść do ścieżki, w której utworzyłeś tag (ścieżka lokalna). Oznacza, gdzie umieściłeś swoje przedmioty. Następnie wpisz polecenie:

git show --name-only <tagname>

Wyświetli wszystkie obiekty pod tą nazwą znacznika. Pracuję w Teradata, a obiekt oznacza widok, tabelę itp


4

Możesz wyświetlić listę wszystkich istniejących tagów git taglub przefiltrować listę git tag -l 'v1.1.*', gdzie *działa jak symbol wieloznaczny. Zwróci listę tagów oznaczonych v1.1.

Zauważysz, że kiedy zadzwonisz git tag, nie zobaczysz treści swoich adnotacji. Aby je obejrzeć należy dodać -ndo polecenia: git tag -n2.

$ git tag -l -n2

Wersja 1.0 Wydanie 1.0

Wersja 1.1 Wersja 1.1

Polecenie wyświetla listę wszystkich istniejących znaczników wraz z maksymalnie 3 liniami ich komunikatu znacznika. Domyślnie -npokazuje tylko pierwszą linię. Aby uzyskać więcej informacji, sprawdź również ten artykuł związany z tagiem .


0

Aby GUI to zrobił, właśnie odkryłem, że „gitk” obsługuje nazwane widoki. Widoki mają kilka opcji wyboru zatwierdzeń. Jedną poręczną jest pole do wybierania „Wszystkie tagi”. Wydaje mi się, że to działa, aby zobaczyć tagi.

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.