Čo sú značky Git?
Značky Git sú ukazovatele na určité potvrdenia. Sú ako záložky. Na vytvorenie značiek môžete použiť akýkoľvek druh konvencie, ktorú chcete. Väčšina vývojových tímov však používa čísla verzií ako v1.0.1 alebo v.1.1-a1 na vytváranie značiek.
Vytváranie značiek
V Gite sú dva typy značiek:
- Ľahké štítky
- Komentované značky
Ľahké štítky
Ľahké štítky sa vytvárajú ľahko. Môžete jednoducho použiť nasledujúci príkazový riadok:
značka $ gitTieto značky sú uložené v priečinku .zložka git vášho pracovného úložiska.
Vytvorme niekoľko ľahkých značiek Git:
$ git tag v1.0.1Značka $ git Release-20190401
V prvom prípade sme vytvorili značku s „v1.0.1 ”. V druhom prípade sme vytvorili značku s „Release-20190401“. Ľahké značky nevracajú žiadnu hodnotu. Je tiež dôležité zdôrazniť, že pretože tieto dve značky boli urobené zozadu, smerujú k rovnakému potvrdeniu.
Komentované značky
Komentované značky vám umožňujú ukladať ďalšie informácie. Pomocou možnosti „-a“ môžete vytvoriť tieto značky:
$ git tag -aPokúsme sa vytvoriť komentovanú značku:
značka git -a v1.0.2Zobrazí sa textové okno, v ktorom môžete zadať komentár, ktorý by mal vyzerať takto:
## Napíšte správu pre značku:
# V1.0.2
# Riadky začínajúce sa na „#“ budú ignorované.
Zadajte komentár a uložte ho. Takže teraz vaša značka v1.0.2 je uložený s komentárom. Prípadne môžete priamo zadať komentár do príkazového riadku takto:
značka git -a v1.0.3-m „Moja verzia 1.0.3 "Vyhľadanie značiek v kóde
Teraz, keď sme vytvorili niekoľko značiek, pozrime sa, čo máme:
$ git značka -lVydanie-20190401
v1.0.1
v1.0.2
v1.0.3
Vidíme, že všetky naše značky sú zobrazené v abecednom poradí. Viac informácií o značkách môžete získať pomocou znaku „-n
Release-20190401 Aktualizované README.md
v1.0.1 Aktualizované README.md
v1.0.2 Moja verzia 1.0.2
v1.0.3 Moja verzia 1.0.3
Tu si môžete všimnúť rozdiel medzi ľahkými a anotovanými značkami. V tomto príklade „Release-20190401“ a „v1.0.1 ”sú ľahké štítky. „V1.0.2 “a„ v1.0.3 ”sú anotované značky. Všetky ukazujú na to isté potvrdenie (potvrdenie 34671):
$ git logspáchať 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HLAVA -> pán, značka: v1.0.4)
Autor: Zak H
Dátum: so 6. apríla 21:06:02 2019 -0 700
Pridaná funkcia 2
spáchať 161c6e564e79624623ed767397a98105426d0ec4
Autor: Zak H
Dátum: so 6. apríla 21:05:25 2019 -0 700
Pridaná funkcia 1
spáchať 34671d824f9b9951e57f867998cb3c02a11c4805 (značka: v1.0.3, značka: v1.0.2,
značka: v1.0.1, značka: Release-20190401)
Autor: Zak H
Dátum: so 6. apríla 20:24:53 2019 -0 700
Aktualizované README.md
potvrdiť afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (pôvod / hlavný)
Autor: Zak H
Dátum: so 6. apríla 20:23:55 2019 -700
Init
Ľahké značky však zobrazujú komentáre od samotného potvrdenia, ktoré je „Aktualizované README.md ”, zatiaľ čo anotované značky zobrazujú jednotlivé komentáre, ktoré k nim boli pridané počas procesu vytvárania značiek.
Tip: Ak chcete nájsť číslo potvrdenia konkrétnej značky, môžete použiť príkaz „git show“:
$ git show v1.0.3značka v1.0.3
Tagger: Zak H
Dátum: so 6. apríla 20:43:30 2019 -0 700
Moja verzia 1.0.3
spáchať 34671d824f9b9951e57f867998cb3c02a11c4805 (značka: v1.0.3, značka: v1.0.2, značka:
v1.0.1, značka: Release-20190401)
Autor: Zak H
Dátum: so 6. apríla 20:24:53 2019 -0 700
Aktualizované README.md
diff --git a / README.md b / README.md
index 9daeafb… 180cf83 100644
--- a / README.md
+++ b / README.md
@@ -1 +1 @@
-test
+test2
Označovanie starších záväzkov
Môžete sa tiež vrátiť späť a označiť starší potvrdenie. Pozrime sa na protokoly:
$ git log - online106e0bb (HLAVA -> hlavný, značka: v1.0.4) Pridaná funkcia 2
161c6e5 Pridaná funkcia 1
34671d8 (značka: v1.0.3, značka: v1.0.2, značka: v1.0.1, tag: Release-20190401) Aktualizované README.md
afe9b0c (pôvod / hlavný) Poč
$
Všimli sme si, že potvrdenie 161c6e5 nemá priradenú značku. Toto potvrdenie môžeme označiť takto:
$ git tag -a vydanie-20190402 161c6e5Rozbalí sa okno s komentárom. Po vložení komentára vidíme, že máme teraz tag commit:
$ git značka -n1Release-20190401 Aktualizované README.md
Release-20190402 Bola pridaná značka k staršiemu potvrdeniu
v1.0.1 Aktualizované README.md
v1.0.2 Moja verzia 1.0.2
v1.0.3 Moja verzia 1.0.3
v1.0.4 Pridaná funkcia 2
Odstraňujú sa značky
Predpokladajme, že sa rozhodnete, že značky „Release-“ nechcete mať, pretože sú mätúce. Najskôr nájdete všetky značky „Release-“:
$ git tag -l vydanie *Vydanie-20190401
Vydanie-20190402
Teraz ich môžete odstrániť pomocou možnosti „-d“:
$ git tag -d vydanie-20190401Vymazaná značka „Release-20190401“ (bola 34671d8)
$ git tag -d vydanie-20190402
Vymazaná značka „Release-20190402“ (bola 6ee37bc)
Ak znova skontrolujeme značky, mali by sme vidieť iba značky, ktoré sa začínajú písmenom „v“:
$ git značka -n1v1.0.1 Aktualizované README.md
v1.0.2 Moja verzia 1.0.2
v1.0.3 Moja verzia 1.0.3
v1.0.4 Pridaná funkcia 2
Prepísanie značiek
Predpokladajme, že máme situáciu, že „v1.0.4 ”značka sa pridáva k funkcii 2:
$ git log - onlined7b18a4 (HLAVA -> majster) Pridaná funkcia 3
106e0bb (značka: v1.0.4) Pridaná funkcia 2
161c6e5 Pridaná funkcia 1
34671d8 (značka: v1.0.3, značka: v1.0.2, značka: v1.0.1) Aktualizované README.md
afe9b0c (pôvod / hlavný) Poč
Chceme však značku „v1.0.4 ”bude ukazovať na funkciu 3. Ak sa ho pokúsime znova označiť, zobrazí sa táto chyba:
$ git tag v1.0.4 d7b18a4fatal: tag 'v1.0.4 'už existuje
Tento problém môžeme prekonať voľbou „-f“:
$ git tag -f v1.0.4 d7b18a4Aktualizovaná značka 'v1.0.4 '(predtým 106e0bb)
Ak znova skontrolujeme protokol, zistíme, že značka sa presunula do požadovaného potvrdenia:
$ git log - onlined7b18a4 (HLAVA -> majster, značka: v1.0.4) Pridaná funkcia 3
106e0bb Pridaná funkcia 2
161c6e5 Pridaná funkcia 1
34671d8 (značka: v1.0.3, značka: v1.0.2, značka: v1.0.1) Aktualizované README.md
afe9b0c (pôvod / hlavný) Poč
Prípadne môžete značku tiež odstrániť a znova ju pridať k novému potvrdeniu.
Zdieľanie značiek s ostatnými používateľmi
Keď kód prenesiete do vzdialeného úložiska, značky Git sa neprenesú automaticky. Ak chcete svoje značky zdieľať s ostatnými používateľmi, musíte ich výlučne tlačiť.
Značky je možné tlačiť takto:
$ git push origin v1.0.4Počet objektov: 12, hotovo.
Delta kompresia s použitím až 4 vlákien.
Kompresia objektov: 100% (4/4), hotovo.
Písacie objekty: 100% (12/12), 902 bajtov | 150.00 KiB / s, hotovo.
Celkom 12 (delta 0), opätovne použité 0 (delta 0)
Komu / Users / zakh / _work / LearnGIT / git_tagging / remote / project_mayhem
* [nová značka] v1.0.4 -> v1.0.4
Teraz, ak ďalší používatelia klonujú vzdialené úložisko, uvidia iba značku, ktorá bola vytlačená („v1.0.4 ”v tomto prípade).
Používanie vetiev vs značiek
Vetvy sú užitočné pre nové funkcie alebo experimentovanie. Spravidla chcete odvetvovať, keď je potrebné vykonať budúcu prácu a ktorá bude rušiť váš súčasný vývoj. Na druhej strane sú značky užitočnejšie ako snímky. Mali by ste ich použiť na zapamätanie si konkrétnych vecí, ktoré ste už urobili.
Na záver
Značka Git je nedostatočne využívaná funkcia, ktorá môže poskytnúť vynikajúci spôsob sledovania vydaní a špeciálnych funkcií. Ak nastavíte osvedčené postupy týkajúce sa značiek, môže vám to pomôcť ľahko komunikovať s vývojovým tímom a zjednodušiť vaše vývojové procesy.
Ďalšie štúdium:
- https: // git-scm.com / book / en / v2 / Git-Basics-Tagging
- https: // softvérové inžinierstvo.výmena zásobníka.com / questions / 165725 / git-branching-and-tagging-best-practices
- https: // www.atlassian.com / git / tutorials / inspection-a-repository / git-tag
- https: // en.wikipedia.org / wiki / Softvérová verzia
- https: // www.techopédia.com / definition / 25977 / verzia softvéru