git tag

Tworzy, wyświetla lub usuwa tagi, najczęściej dla oznaczania wydań.

git tag to narzędzie do oznaczania konkretnych punktów w historii repozytorium stałą, czytelną etykietą. W praktyce używasz go najczęściej do oznaczania wydań (np. v1.0.0), bo w przeciwieństwie do gałęzi tag domyślnie się nie przesuwa — wskazuje na ten sam commit już zawsze. Bez argumentów git tag po prostu wypisuje listę istniejących tagów, więc to też najbezpieczniejszy sposób, żeby zacząć.

Składnia i najważniejsze opcje

Podstawowa forma: git tag [-a -m ] [-d ]

  • -a — tworzy tag adnotowany (annotated): osobny obiekt z autorem, datą i opisem. To zalecany typ dla wydań.
  • -m — podaje wiadomość tagu adnotowanego prosto z linii poleceń, bez otwierania edytora.
  • -d — usuwa lokalny tag o podanej nazwie.
  • -l (lub --list) — listuje tagi, opcjonalnie filtrując po wzorcu, np. v1.*.
  • -f — wymusza nadpisanie taga, który już istnieje.
  • -n — przy listowaniu pokazuje też wiersze opisu (np. -n1 = jeden wiersz).
  • -s — tworzy tag podpisany kluczem GPG (do weryfikacji autentyczności wydania).
  • --points-at — pokazuje tagi wskazujące na dany commit.

Przykłady użycia

  • git tag — wypisuje wszystkie tagi w repozytorium, alfabetycznie.
  • git tag -a v1.0.0 -m "Pierwsze wydanie" — tworzy tag adnotowany na bieżącym commicie z opisem.
  • git tag -a v0.9.0 9fceb02 — tagujesz starszy commit po jego skrócie (otworzy się edytor na opis).
  • git tag -d v1.0.0 — kasuje lokalny tag v1.0.0.
  • git push origin v1.0.0 — wysyła pojedynczy tag na zdalne repo (samo git push tagów nie ruszy).

Częste błędy i pułapki

Najczęstsza wpadka: tworzysz tag i dziwisz się, że kolega go nie widzi. Tagi nie jadą razem ze zwykłym git push — musisz je wypchnąć jawnie przez git push origin albo wszystkie naraz przez git push --tags. Druga sprawa to lekkie kontra adnotowane: bez -a/-m robisz tag lekki, czyli goły wskaźnik bez autora i daty — fajny na chwilowe zakładki, ale do wydań używaj adnotowanych.

Usunięcie tagu lokalnie (-d) nie usuwa go ze zdalnego — do tego służy git push origin --delete . I uważaj z -f: przesuwanie istniejącego, opublikowanego taga to klasyczny sposób, żeby narobić zamieszania w zespole, bo inni mają już starą wersję. Lepiej nie nadpisuj tagów, które ktoś mógł pobrać.

Powiązane komendy: git push, git checkout, git describe, git show, git log.