Co jsou značky Git?
Značky Git jsou ukazatele na určité revize. Jsou jako záložky. K vytváření značek můžete použít jakýkoli druh konvence. Ale většina vývojových týmů používá čísla verzí jako v1.0.1 nebo v.1.1-a1 k vytváření značek.
Vytváření značek
V Gitu existují dva typy značek:
- Lehké značky
- Komentované značky
Lehké značky
Odlehčené značky se snadno vytvářejí. Můžete jednoduše použít následující příkazový řádek:
$ git tagTyto značky jsou uloženy v .git složka vašeho pracovního úložiště.
Vytvořme několik lehkých značek Git:
$ git tag v1.0.1$ git tag Release-20190401
V prvním případě jsme vytvořili značku s „v1.0.1 ”. V druhém případě jsme vytvořili značku s „Release-20190401“. Lehké značky nevracejí žádnou hodnotu. Je také důležité zdůraznit, že protože tyto dvě značky byly provedeny zády k sobě, směřují ke stejnému potvrzení.
Komentované značky
Anotované značky vám umožňují ukládat další informace. Možnost „-a“ můžete použít k vytvoření těchto značek:
$ git tag -aZkusme vytvořit anotovanou značku:
git tag -a v1.0.2Zobrazí se textové okno, ve kterém můžete zadat komentář, který by měl vypadat takto:
## Napište zprávu pro značku:
# V1.0.2
# Řádky začínající na „#“ budou ignorovány.
Zadejte komentář a uložte jej. Takže teď vaše značka v1.0.2 je uložen s komentářem. Alternativně můžete přímo zadat komentář do příkazového řádku takto:
git tag -a v1.0.3-m "Moje verze 1.0.3 "Hledání značek ve vašem kódu
Nyní, když jsme vytvořili několik značek, se podívejme, co máme:
$ git tag -lVydání-20190401
v1.0.1
v1.0.2
v1.0.3
Vidíme, že všechny naše značky jsou zobrazeny v abecedním pořadí. Další informace o značkách získáte pomocí „-n
Release-20190401 Aktualizováno README.md
v1.0.1 Aktualizováno README.md
v1.0.2 Moje verze 1.0.2
v1.0.3 Moje verze 1.0.3
Zde si můžete všimnout rozdílu mezi lehkými a anotovanými značkami. V tomto příkladu „Release-20190401“ a „v1.0.1 ”jsou lehké značky. „V1.0.2 “a„ v1.0.3 ”jsou komentované značky. Všechny směřují ke stejnému potvrzení (potvrzení 34671):
$ git logspáchat 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> master, tag: v1.0.4)
Autor: Zak H
Datum: So 6. dubna 21:06:02 2019-0700
Přidána funkce 2
spáchat 161c6e564e79624623ed767397a98105426d0ec4
Autor: Zak H
Datum: So 6. dubna 21:05:25 2019-0700
Přidána funkce 1
spáchat 34671d824f9b9951e57f867998cb3c02a11c4805 (značka: v1.0.3, značka: v1.0.2,
značka: v1.0.1, tag: Release-20190401)
Autor: Zak H
Datum: So Apr 6 20:24:53 2019-0700
Aktualizováno README.md
spáchat afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (původ / hlavní)
Autor: Zak H
Datum: So Apr 6 20:23:55 2019-0700
Init
Odlehčené značky však zobrazují komentáře od samotného potvrzení, což je „Aktualizováno README.md ”, zatímco komentované tagy zobrazují jednotlivé komentáře, které k nim byly přidány během procesu vytváření tagů.
Spropitné: Pokud chcete zjistit číslo potvrzení konkrétní značky, můžete použít příkaz „git show“:
$ git show v1.0.3značka v1.0.3
Tagger: Zak H
Datum: so 6. dubna 20:43:30 2019-0700
Moje verze 1.0.3
spáchat 34671d824f9b9951e57f867998cb3c02a11c4805 (značka: v1.0.3, značka: v1.0.2, značka:
v1.0.1, tag: Release-20190401)
Autor: Zak H
Datum: So Apr 6 20:24:53 2019-0700
Aktualizováno README.md
diff --git a / README.md b / README.md
index 9daeafb… 180cf83 100644
--- a / README.md
+++ b / PŘEČTĚTE SI.md
@@ -1 +1 @@
-test
+test2
Označování starších revizí
Můžete se také vrátit zpět a označit starší potvrzení. Podívejme se na protokoly:
$ git log - online106e0bb (HEAD -> master, tag: v1.0.4) Přidaná funkce 2
161c6e5 Přidána funkce 1
34671d8 (značka: v1.0.3, značka: v1.0.2, značka: v1.0.1, tag: Release-20190401) Aktualizováno README.md
afe9b0c (počátek / hlavní) Poč
$
Všimli jsme si, že potvrzení 161c6e5 nemá přidruženou značku. Toto potvrzení můžeme označit takto:
$ git tag -a Release-20190402 161c6e5Otevře se okno s komentářem. Poté, co vložíme komentář, vidíme, že máme nyní označeno potvrzení:
$ git tag -n1Release-20190401 Aktualizováno README.md
Release-20190402 Přidána značka ke staršímu potvrzení
v1.0.1 Aktualizováno README.md
v1.0.2 Moje verze 1.0.2
v1.0.3 Moje verze 1.0.3
v1.0.4 Přidaná funkce 2
Odebírání značek
Předpokládejme, že se rozhodnete, že značky „Release-“ nechcete, protože jsou matoucí. Nejprve najdete všechny značky „Release-“:
$ git tag -l Release *Vydání-20190401
Vydání-20190402
Nyní je můžete odstranit pomocí volby „-d“:
$ git tag -d Release-20190401Smazaná značka „Release-20190401“ (dříve 34671d8)
$ git tag -d Release-20190402
Smazaná značka „Release-20190402“ (původně 6ee37bc)
Pokud značky znovu zkontrolujeme, měli bychom vidět pouze značky, které začínají na „v“:
$ git tag -n1v1.0.1 Aktualizováno README.md
v1.0.2 Moje verze 1.0.2
v1.0.3 Moje verze 1.0.3
v1.0.4 Přidaná funkce 2
Přepis značek
Předpokládejme, že máme situaci, kdy „v1.0.Značka 4 ”se přidává k funkci 2:
$ git log - onlined7b18a4 (HEAD -> master) Přidána funkce 3
106e0bb (tag: v1.0.4) Přidaná funkce 2
161c6e5 Přidána funkce 1
34671d8 (značka: v1.0.3, značka: v1.0.2, značka: v1.0.1) Aktualizováno README.md
afe9b0c (počátek / hlavní) Poč
Ale chceme značku „v1.0.4 ”bude ukazovat na funkci 3. Pokud to zkusíme znovu označit, dostaneme tuto chybu:
$ git tag v1.0.4 d7b18a4fatal: tag 'v1.0.4 'již existuje
Tento problém můžeme překonat volbou „-f“:
$ git tag -f v1.0.4 d7b18a4Aktualizovaná značka 'v1.0.4 '(dříve 106e0bb)
Pokud znovu zkontrolujeme protokol, uvidíme, že se značka přesunula do požadovaného potvrzení:
$ git log - onlined7b18a4 (HEAD -> master, tag: v1.0.4) Přidaná funkce 3
106e0bb Přidána funkce 2
161c6e5 Přidána funkce 1
34671d8 (značka: v1.0.3, značka: v1.0.2, značka: v1.0.1) Aktualizováno README.md
afe9b0c (počátek / hlavní) Poč
Alternativně můžete také odstranit značku a znovu ji přidat k novému potvrzení.
Sdílení značek s ostatními uživateli
Když svůj kód odešlete do vzdáleného úložiště, značky Git se nezasunou automaticky. Pokud chcete své tagy sdílet s ostatními uživateli, musíte je exkluzivně odeslat.
Značky lze tlačit takto:
$ git push origin v1.0.4Počítání objektů: 12, hotovo.
Delta komprese pomocí až 4 vláken.
Komprese objektů: 100% (4/4), hotovo.
Psaní objektů: 100% (12/12), 902 bajtů | 150.00 KiB / s, hotovo.
Celkem 12 (delta 0), znovu použito 0 (delta 0)
Komu / Uživatelé / zakh / _work / LearnGIT / git_tagging / remote / project_mayhem
* [nová značka] v1.0.4 -> v1.0.4
Nyní, pokud ostatní uživatelé naklonují vzdálené úložiště, uvidí pouze značku, která byla vložena („v1.0.4 ”v tomto případě).
Používání větví vs značek
Větve jsou užitečné pro nové funkce nebo experimentování. Obecně chcete odbočit, když je třeba provést budoucí práci a práce bude narušovat váš současný vývoj. Na druhou stranu jsou značky užitečnější jako snímky. Měli byste je použít k zapamatování si konkrétních věcí, které jste již udělali.
Závěrem
Značka Git je nedostatečně využívaná funkce, která může poskytnout skvělý způsob, jak sledovat vydání a speciální funkce. Pokud nastavíte osvědčené postupy kolem značek, pomůže vám snadno komunikovat se svým vývojovým týmem a zjednodušit vaše vývojové procesy.
Další studie:
- https: // git-scm.com / book / en / v2 / Git-Basics-Tagging
- https: // softwareengineering.výměna zásobníku.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 / Software_verze
- https: // www.techopedia.com / definition / 25977 / verze softwaru