Git

Kaip naudoti „Git“ žymes tobulinant savo kūrimo procesus

Kaip naudoti „Git“ žymes tobulinant savo kūrimo procesus
Daugumai kūrėjų komandų „Git“ tapo esminiu versijų valdymo įrankiu. Didelė „Git“ populiarumo priežastis yra vientisa galimybė kurti šakas. Kūrėjų komandos gali naudoti filialus, kad galėtų dirbti su konkrečiomis funkcijomis ar leidimais. Tačiau „Git“ žyma yra dažnai nepastebima komanda, padedanti komandoms supaprastinti savo darbo eigą. Šiame straipsnyje aptarsime, kas, kaip ir kodėl yra „Git“ žymėjimas.

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

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 -a

Pabandykime sukurti anotuotą žymą:

git tag -a v1.0.2

Bus 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 -l
Iš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”Kur reiškia komentarų eilučių skaičių.

$ git žyma -n1
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 - tiesioginis
106e0bb (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 161c6e5

Tai iššoks komentarų lange. Įrašę komentarą, galime pamatyti, kad dabar turime pažymėti įsipareigojimą:

$ git žyma -n1
Iš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-20190401
Iš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 -n1
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

Žymų perrašymas

Tarkime, mes turime situaciją, kai „v1.0.4 colių žymė skirta 2 funkcijai:

$ git žurnalas - tiesioginis
d7b18a4 (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 d7b18a4
fatal: tag 'v1.0.4 'jau egzistuoja

Šią problemą galime įveikti pasirinkdami „-f“:

$ git tag -f v1.0.4 d7b18a4
Atnaujinta žyma „v1“.0.4 '(buvo 106e0bb)

Jei dar kartą patikrinsime žurnalą, pamatysime, kad žyma perkelta į norimą įsipareigojimą:

$ git žurnalas - tiesioginis
d7b18a4 (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.4
Skaič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
„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...
0 A.D. Pamoka
Iš daugybės strateginių žaidimų 0 A.D. sugeba išsiskirti kaip išsamus pavadinimas ir labai gilus, taktinis žaidimas, nepaisant to, kad yra atviro kodo...
„Unity3D“ pamoka
Įvadas į „Unity 3D“ „Unity 3D“ yra galingas žaidimų kūrimo variklis. Tai yra daugiašalė platforma, kuri leidžia kurti žaidimus mobiliesiems, interneti...