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?

Léo Léopold Hertz 준영
źródło

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.

VonC
źródło
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.

Fin
źródło
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
...
Campa
źródło
1
Przyzwyczajony do Mercurial, hg tagspodoba mi się, że git show-refdaje mi tag ORAZ wersję.
Justin
34

A oto jak znaleźć zdalne tagi:

git ls-remote --tags origin

Dimitri Dewaele
źródło
15

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

Toto
źródło
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
LYES - CHIOUKH
źródło
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
Andrei Sura
źródło
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

Tanaya
źródło
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 .

Nesha Zoric
źródło
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.

OBJ
źródło