Git Oznake

Oznake su jednostavan aspekt Gita i omogućavaju vam da identifikujete određene verzije vašeg koda. Oznaku možete smatrati granom koja se ne menja. Jednom kada je kreirana, ona gubi mogućnost promene istorije commit-ovanja.

Dva tipa Git oznaka

U Gitu postoje dve vrste oznaka: označena i lagana. Oboje će vam omogućiti da se obratite određenom commit-u u repozitorijumu, ali se razlikuju u količini metapodataka koje mogu da uskladište.

Označena oznaka

Označene oznake čuvaju dodatne metapodatke kao što su ime autora, beleške o izdanju, poruka oznake i datum kao puni objekti u Git bazi podataka. Svi ovi podaci su važni za javno objavljivanje vašeg projekta.

Oznake takođe mogu da sadrže opisniju poruku-oznake ili napomenu slično commit poruci kada ćete spojiti. Obično se to postiže korišćenjem (-a za napomenu):

$ git tag -a v1.0.0

Izvršavanjem ove naredbe stvorićete novu označenu oznaku identifikovanu sa verzijom v1.0.0. Komanda će tada otvoriti vaš uređivač commit-ova tako da možete popuniti metapodatke.

U slučaju da želite da dodate poruku oznake možete proslediti opciju -m, ovo je metoda slična git commit -m.

$ git tag -a v1.0.0 -m "Releasing version v1.0.0"

Lagane oznake

Lagane oznake su najjednostavniji način za dodavanje oznake u vaš git repozitorijum jer čuvaju samo heš commit-a na koje se odnose. Stvorene su u odsustvu opcija -a, -s ili -m i ne sadrže nikakve dodatne informacije.

Lagane oznake su u osnovi „obeleživači“ commit-a, oni su samo ime i pokazivač na commit, korisni za stvaranje brzih veza do relevantnih commit-ova. By Bitbucket tutoriali

Za kreiranje nove lagane oznake izvršite komandu:

$ git tag v1.0.0

Dodatne komande

Lista oznaka - git tag
Koristite komandu kad god želite da navedete sve postojeće oznake, ili biste mogli da filtrirate listu pomoću git tag -l 'v1.1. *', Gde * deluje kao džoker. Vratiće listu oznaka označenih sa v1.1.

Primetićete da kada pozovete [git tag](https://kolosek.com/git-commands-tutorial-part1/) nećete videti sadržaj svojih napomena. Da biste ih pregledali,morate dodati -n komandi: git tag -n3.

$ git tag -l -n3
v1.0            Release version 1.0
v1.1            Release version 1.1
v1.2            Release version 1.2

Komanda navodi sve postojeće oznake sa najviše 3 reda njihove poruke o oznakama. Podrazumevano -n prikazuje samo prvi red.

Detalji oznake - git show <tag_identifier>
Ova naredba vam predstavlja detalje o oznakama i informacije iz commit-a koje je označeno.

$ git show v1.0
tag v1.0
Tagger: Kolosek 
Date:   Fri May 11 10:45:33 2018 +0100

Release version 1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iMTvhAA...
-----END PGP SIGNATURE-----

commit 7d44b6bb8abb96dee33f32610f56441496d77e8a
Author: Kolosek 
Date:   Fri May 11 9:50:13 2018 +0100

    Edited the Login form
...

Štampa ime autora, datum kreiranja, poruku, GnuPG potpis ako je prisutan i informacije o navedenom commit-u. Ako je oznaka lagana, izlaz će biti ograničen na informacije o referenciranom urezivanju.

Uređivanje tagova - git tag -a -f <tag_identifier> <commit_id>
Ako pokušate da kreirate oznaku sa istim identifikatorom kao i postojeća oznaka, Git će izbaciti grešku: fatal: tag 'v1.0' already exists.

Umesto da morate da je izbrišete i ponovo dodate oznaku, možete je jednostavno zameniti zadržavajući postojeći opis. Izaberite mesto u istoriji commit-a pomoću <commit_id> na koje želite da se oznaka prebaci i dodajte -f ili -force u svoju komandu.

Ne zaboravite da upozorite članove svog tima kada „forsirate“ ovakvu promenu. Ako i dalje imaju „staru“ verziju oznake, to može da izazove konflikte kada pokušaju da prebace na server!

Ako ste već gurnuli oznaku na server i želite to da popravite, prvo proverite da li je lokalna verzija oznake tačna pre nego što pokrenete sledeću komandu: git push origin -f --tags.

Brisanje tagova - git tag -d <tag_identifier>
Generalno, nema razloga za brisanje oznaka, jer su jeftine i ne koriste nikakve resurse, osim ako niste greškom kreirali oznaku koja ukazuje na pogrešan commit.

U slučaju da je oznaka već gurnuta i morate je ukloniti iz udaljenog repozitorijuma pokrenite: $ git push origin: v1.0.

Objavljivanje tagova - git push <location> <tag_identifier>
Oznaka je samo referenca na vaš lokalni repozitorijum i ne prebacuje se automatski u udaljeni repozitorijum sa ostatkom koda. Umesto toga, možete git push oznaku pojedinačno ili možete pokrenuti git push --tags koji će gurati sve oznake odjednom. To se može učiniti slično guranju grana:

$ git push origin v1.0

Sortiranje tagova - git tag --sort = <tipe>
Kada gledate projekat sa puno tagova, upotreba opcije sortiranja može vam dobro doći. Podržani tipovi su:

  • refname (sortirano po leksikografskom redosledu),
  • version: refname ili v: refname (ovde se nazivi oznaka tretiraju kao verzije).
git tag -l --sort=-version:refname "v*"

Ovde navodimo sve oznake čija imena počinju sa „v“ prema njihovim verzijama.

Nije li git tag isto što i #tag u društvenim mrežama, ali na svoj način? Pomaže nam da se vratimo i navedemo sva naša prethodna izdanja!

Pretplatite se na naša buduća izdanja članaka! Obavezno ćemo ih označiti za vas!