Kas yra „Git“ žymos?
„Git“ žymos nurodo tam tikrus įsipareigojimus. Jie yra tarsi žymės. Galite naudoti bet kokį susitarimą, kurį norite sukurti žymes. Tačiau dauguma kūrėjų komandų naudoja versijų numerius, pvz., V1.0.1 arba v.1.1-a1 sukurti žymes.
Žymų kūrimas
„Git“ yra dviejų tipų žymos:
- Lengvos žymos
- Anotuotos žymos
Lengvos žymos
Lengvas etiketes lengva sukurti. Galite tiesiog naudoti šią komandinę eilutę:
$ git žymaŠios žymos saugomos .jūsų saugyklos git aplanką.
Sukurkime keletą lengvų „Git“ žymų:
$ git tag v1.0.1$ git žymos leidimas-20190401
Pirmuoju atveju mes sukūrėme žymą su „v1.0.1 “. Antruoju atveju mes sukūrėme žymą su „Release-20190401“. Lengvos žymos negrąžina jokios vertės. Be to, svarbu pabrėžti, kad kadangi šios dvi žymos buvo atliktos atgal, jos rodo tą patį įsipareigojimą.
Anotuotos žymos
Anotuotos žymos suteikia galimybę išsaugoti daugiau informacijos. Norėdami naudoti šias žymas, galite naudoti parinktį „-a“:
$ git tag -aPabandykime sukurti anotuotą žymą:
git tag -a v1.0.2Bus iššokantis teksto langas, kuriame galėsite įvesti komentarą, kuris turėtų atrodyti taip:
## Parašykite žyma pranešimą:
# V1.0.2
# Eilutės, prasidedančios „#“, bus ignoruojamos.
Įveskite komentarą ir išsaugokite jį. Taigi, dabar jūsų žyma v1.0.2 įrašomas su komentaru. Arba galite tiesiogiai įvesti komentarą komandinėje eilutėje taip:
git tag -a v1.0.3 -m "Mano versija 1.0.3 "Žymų radimas kode
Sukūrę kelias žymas, pažiūrėkime, ką turime:
$ git tag -lIšleidimas-20190401
v1.0.1
v1.0.2
v1.0.3
Matome, kad visos mūsų žymos pateikiamos abėcėlės tvarka. Daugiau informacijos apie žymas galite gauti naudodami „-n
Release-20190401 Atnaujinta README.md
v1.0.1 Atnaujinta „README“.md
v1.0.2 Mano versija 1.0.2
v1.0.3 Mano versija 1.0.3
Čia galite pastebėti skirtumą tarp lengvų ir komentuotų žymių. Šiame pavyzdyje „Release-20190401“ ir „v1.0.1 “yra lengvos žymos. „V1.0.2 “ir„ v1.0.3 “yra anotuotos žymos. Visi jie rodo tą patį įsipareigojimą (įsipareigokite 34671):
$ git žurnalasįsipareigoti 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> master, tag: v1.0.4)
Autorius: Zak H
Data: šeštadienis, balandžio 6 d. 21:06:02, 2019 -0700
Pridėta 2 funkcija
įsipareigoti 161c6e564e79624623ed767397a98105426d0ec4
Autorius: Zak H
Data: Šeštadienis Balandis 6 21:05:25 2019 -0700
Pridėta 1 funkcija
įsipareigoti 34671d824f9b9951e57f867998cb3c02a11c4805 (žymė: v1.0.3, žyma: v1.0.2,
žymė: v1.0.1, žyma: Release-20190401)
Autorius: Zak H
Data: Šeštadienis Balandžio 6 20:24:53 2019 -0700
Atnaujinta „README“.md
įsipareigoti afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (kilmė / pagrindinis)
Autorius: Zak H
Data: Šeštadienis Balandžio 6 20:23:55 2019 -0700
Init
Tačiau lengvos žymos rodo paties įsipareigojimo komentarus, kurie yra „Atnaujinta README.md “, o anotuotose žymose rodomi atskiri komentarai, kurie buvo pridėti prie jų kuriant procesą.
Patarimas: Jei norite rasti tam tikros žymos įsipareigojimo numerį, galite naudoti komandą „git show“:
$ git šou v1.0.3žyma v1.0.3
Žymeklis: Zakas H
Data: Šeštadienis, balandžio 6 d. 20:43:30, 2019-0700
Mano versija 1.0.3
įsipareigoti 34671d824f9b9951e57f867998cb3c02a11c4805 (žymė: v1.0.3, žyma: v1.0.2, žymė:
v1.0.1, žyma: Release-20190401)
Autorius: Zak H
Data: Šeštadienis Balandžio 6 20:24:53 2019 -0700
Atnaujinta „README“.md
diff --git a / README.md b / README.md
indeksas 9daeafb… 180cf83 100644
--- a / SKAITYTI.md
+++ b / SKAITYTI.md
@@ -1 +1 @@
-testas
+testas2
Senesnių įsipareigojimų žymėjimas
Taip pat galite grįžti ir pažymėti senesnį įsipareigojimą. Pažvelkime į žurnalus:
$ git žurnalas - tiesioginis106e0bb (HEAD -> master, tag: v1.0.4) Pridėta 2 funkcija
161c6e5 pridėta 1 funkcija
34671d8 (žymė: v1.0.3, žyma: v1.0.2, žymė: v1.0.1, žyma: Release-20190401) Atnaujinta README.md
afe9b0c (kilmė / meistras) Init
$
Pastebime, kad įsipareigojimas „161c6e5“ neturi susietos žymos. Šį įsipareigojimą galime pažymėti taip:
$ git tag -a Leidimas-20190402 161c6e5Tai iššoks komentarų lange. Įrašę komentarą, galime pamatyti, kad dabar turime pažymėti įsipareigojimą:
$ git žyma -n1Išleidimas-20190401 Atnaujinta „README“.md
Release-20190402 Pridėta žyma prie senesnio įsipareigojimo
v1.0.1 Atnaujinta „README“.md
v1.0.2 Mano versija 1.0.2
v1.0.3 Mano versija 1.0.3
v1.0.4 Pridėta 2 funkcija
Pašalinamos žymos
Tarkime, jūs nusprendėte, kad nenorite žymos „Release-“, nes jos painioja. Pirmiausia galite rasti visas žymas „Release-“:
$ git tag -l leidimas *Išleidimas-20190401
Išleidimas-20190402
Dabar galite juos pašalinti naudodami parinktį „-d“:
$ git tag -d Release-20190401Ištrinta žyma „Release-20190401“ (buvo 34671d8)
$ git tag -d Release-20190402
Ištrinta žyma „Release-20190402“ (buvo 6ee37bc)
Jei dar kartą patikrinsime žymas, turėtume pamatyti tik tas žymas, kurios prasideda raide „v“:
$ git žyma -n1v1.0.1 Atnaujinta „README“.md
v1.0.2 Mano versija 1.0.2
v1.0.3 Mano versija 1.0.3
v1.0.4 Pridėta 2 funkcija
Žymų perrašymas
Tarkime, mes turime situaciją, kai „v1.0.4 colių žymė skirta 2 funkcijai:
$ git žurnalas - tiesioginisd7b18a4 (HEAD -> master) Pridėta 3 funkcija
106e0bb (žymė: v1.0.4) Pridėta 2 funkcija
161c6e5 pridėta 1 funkcija
34671d8 (žymė: v1.0.3, žyma: v1.0.2, žymė: v1.0.1) Atnaujinta README.md
afe9b0c (kilmė / meistras) Init
Bet mes norime žymos „v1.0.4 “nukreipti į 3 ypatybę. Jei bandysime jį perrašyti iš naujo, gausime šią klaidą:
$ git tag v1.0.4 d7b18a4fatal: tag 'v1.0.4 'jau egzistuoja
Šią problemą galime įveikti pasirinkdami „-f“:
$ git tag -f v1.0.4 d7b18a4Atnaujinta žyma „v1“.0.4 '(buvo 106e0bb)
Jei dar kartą patikrinsime žurnalą, pamatysime, kad žyma perkelta į norimą įsipareigojimą:
$ git žurnalas - tiesioginisd7b18a4 (HEAD -> master, tag: v1.0.4) Pridėta 3 funkcija
106e0bb pridėta 2 funkcija
161c6e5 pridėta 1 funkcija
34671d8 (žymė: v1.0.3, žyma: v1.0.2, žymė: v1.0.1) Atnaujinta README.md
afe9b0c (kilmė / meistras) Init
Arba taip pat galite ištrinti žymą ir vėl pridėti ją prie naujo įsipareigojimo.
Žymų bendrinimas su kitais vartotojais
Kai nuspausite kodą į savo nuotolinę saugyklą, „Git“ žymos nebus stumiamos automatiškai. Jei norite bendrinti savo žymas su kitais vartotojais, turite juos išimtinai išstumti.
Žymas galima stumti taip:
$ git push origin v1.0.4Skaičiuojami objektai: 12, atlikta.
Delta suspaudimas naudojant iki 4 siūlų.
Suspausti objektai: 100% (4/4), padaryta.
Rašyti objektus: 100% (12/12), 902 baitai | 150.00 KiB / s, atlikta.
Iš viso 12 (0 delta), pakartotinai panaudota 0 (0 delta)
Kam / Vartotojai / zakh / _work / LearnGIT / git_tagging / remote / project_mayhem
* [nauja žyma] v1.0.4 -> v1.0.4
Dabar, jei kiti vartotojai klonuoja nuotolinę saugyklą, jie matys tik žymą, kuri buvo nustumta („v1.0.4 “(šiuo atveju).
Filialų ir žymių naudojimas
Filialai yra naudingi naujoms funkcijoms ar eksperimentams. Paprastai norima išsišakoti, kai yra būsimas darbas, kurį reikia atlikti, ir darbas trikdo jūsų dabartinę raidą. Kita vertus, žymos yra naudingesnės kaip momentinės nuotraukos. Turėtumėte juos naudoti atsimindami tam tikrus dalykus, kuriuos jau padarėte.
Apibendrinant
„Git“ žyma yra nepakankamai naudojama funkcija, kuri gali būti puikus būdas stebėti leidimus ir specialias funkcijas. Jei sukursite gerą žymių praktiką, tai gali padėti lengvai bendrauti su savo kūrėjų komanda ir supaprastinti kūrimo procesus.
Tolesnis tyrimas:
- https: // git-scm.com / book / en / v2 / „Git-Basics-Tagging“
- https: // programinė įranga.kamino mainai.„com / questions / 165725 / git-branching-and-tagging-best-practice“
- https: // www.atlassian.com / git / tutorials / inspecting-a-repository / git-tag
- https: // lt.vikipedija.org / wiki / Software_versioning
- https: // www.techopedija.com / definition / 25977 / programinės įrangos versijos