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
-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 tagv1.0.0.git push origin v1.0.0— wysyła pojedynczy tag na zdalne repo (samogit pushtagó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.