Gdy pracujesz z Gitem, prędzej czy później pojawi się potrzeba wyodrębnienia jakiegoś etapu prac — na przykład nowej funkcjonalności albo poprawki błędu. Warto wtedy oznaczyć taki moment w historii projektu, by móc łatwo do niego wrócić. Pomogą Ci w tym tagi.
W oficjalnej dokumentacji Git przeczytamy:
Podobnie jak większość systemów kontroli wersji, Git pozwala na oznaczanie ważnych punktów w historii. Najczęściej użytkownicy używają tagów do oznaczania istotnych wersji kodu (np. wersja 1.0, itd.).
W projektach Node.js często stosuje się wersjonowanie Semantic Versioning (SemVer). To standardowy sposób nadawania numerów wersji dla oprogramowania. Format wersji to X.Y.Z, gdzie:
- X – wersja główna (major)
- Y – nowe funkcje (feature)
- Z – poprawki błędów (fix)
Podobne podejście stosuje się także w innych technologiach.
Wersjonowanie ułatwia stosowanie Conventional Commits, dzięki którym łatwiej określić, jaka wersja powinna zostać opublikowana.
W tym poradniku pokażę Ci, jak sprawdzić tagi w Gicie i jak z nich korzystać.
Jak sprawdzić tag w Git
Aby odbić się od konkretnega tagi w Git, użyj polecenia git checkout z nazwą tagu oraz nazwą nowej gałęzi:
$ git checkout tags/<tag> -b <branch>
Upewnij się wcześniej, że masz aktualną listę tagów z repozytorium zdalnego.
Aby je pobrać, użyj komendy:
$ git fetch --all --tags Fetching origin From git-repository 98a14be..7a9ad7f master -> origin/master * [new tag] v1.0 -> v1.0
Załóżmy, że chcesz sprawdzić tag „v1.0” i utworzyć gałąź o nazwie „release”.
Tagi są obiektami w Gicie, więc można do nich wracać, podobnie jak do commitów czy gałęzi.
Wykonaj:
$ git checkout tags/v1.0 -b v1.0-branch Switched to a new branch 'v1.0-branch'
W ten sposób przełączyłeś się na nową gałąź utworzoną z tagu „v1.0”.
Możesz sprawdzić historię commitów komendą:
$ git log --oneline --graph * 53a7dcf (HEAD -> v1.0-branch, tag: v1.0) Version 1.0 commit * 0a9e448 added files * bd6903f (release) first commit
Super! Teraz możesz kontynuować pracę na nowej gałęzi, zaczynając od wskazanego tagu.
Jak sprawdzić najnowszy tag w Git?
Czasem chcesz sprawdzić, jaki jest najnowszy dostępny tag w repozytorium.
Najpierw pobierz najnowsze tagi z repozytorium zdalnego:
$ git fetch --tags Fetching origin From git-repository 98a14be..7a9ad7f master -> origin/master * [new tag] v2.0 -> v2.0 * [new tag] v1.0 -> v1.0
Jak widzisz, pobierasz wszystkie dostępne tagi.
Aby znaleźć najnowszy, użyj komendy git describe
$ tag=$(git describe --tags `git rev-list --tags --max-count=1`) $ echo $tag v2.0
Teraz sprawdź najnowszy tag, tworząc nową gałąź:
$ git checkout $tag -b latest Switched to a new branch 'latest'
Gotowe! Utworzyłeś nową gałąź na podstawie najnowszego tagu.
Dla pewności możesz sprawdzić historię commitów:
$ git log --oneline --graph * 7a9ad7f (HEAD -> latest, tag: v2.0, origin/master, master) version 2 commit * 98a14be Version 2 commit * 53a7dcf (tag: v1.0, v1.0-branch) Version 1.0 commit * 0a9e448 added files * bd6903f (branch3) first commit
Mam nadzieję, że ten poradnik wyjaśnił trochę pracę z tagami w GIT. Jeżeli uważasz, że coś nie zostało dobrze wyjaśnione lub potrzeba więcej przykładów, to zapraszam do komentowania.