Git

Kā izmantot Git tagus, lai uzlabotu attīstības procesus

Kā izmantot Git tagus, lai uzlabotu attīstības procesus
Lielākajai daļai izstrādes komandu Git ir kļuvis par būtisku versiju kontroles rīku. Liels iemesls Git popularitātei ir tā vienmērīgā spēja izveidot filiāles. Izstrādes komandas var izmantot filiāles, lai strādātu ar īpašām funkcijām vai izlaidumiem. Tomēr Git tags ir bieži aizmirsta komanda, kas komandām var palīdzēt vienkāršot viņu darbplūsmu. Šajā rakstā mēs izpētīsim, kas ir, kā un kāpēc ir Git marķēšana.

Kas ir Git tagi?

Git tagi norāda uz noteiktām saistībām. Tās ir kā grāmatzīmes. Jūs varat izmantot jebkura veida konvenciju, kuru vēlaties izveidot tagus. Bet lielākā daļa izstrādes komandu izmanto versiju numurus, piemēram, v1.0.1 vai v.1.1-a1, lai izveidotu tagus.

Tagu izveide

Programmā Git ir divu veidu tagi:

Viegli tagi

Vieglus tagus ir viegli izveidot. Jūs varat vienkārši izmantot šādu komandrindu:

$ git tags

Šie tagi tiek glabāti .darba krātuves git mapi.

Izveidosim dažus vieglus Git tagus:

$ git tags v1.0.1
$ git taga izlaidums-20190401

Pirmajā gadījumā mēs izveidojām tagu ar “v1.0.1 ”. Otrajā gadījumā mēs izveidojām tagu ar “Release-20190401”. Vieglie tagi neatgriež nekādu vērtību. Turklāt ir svarīgi norādīt, ka, tā kā šie divi tagi tika veikti atpakaļ, tie norāda uz vienu un to pašu apņemšanos.

Anotētās atzīmes

Anotētās atzīmes ļauj saglabāt vairāk informācijas. Varat izmantot opciju “-a”, lai izveidotu šos tagus:

$ git tag -a

Mēģināsim izveidot anotētu tagu:

git tag -a v1.0.2

Tas parādīs teksta logu, lai ievadītu komentāru, kuram vajadzētu izskatīties šādi:

#
# Uzrakstiet ziņojumu tagam:
# V1.0.2
# Rindas, kas sākas ar “#”, tiks ignorētas.

Ievadiet komentāru un saglabājiet to. Tātad, tagad jūsu tags v1.0.2 tiek saglabāts ar komentāru. Alternatīvi, jūs varat tieši ievadīt komentāru komandrindā šādi:

git tag -a v1.0.3 -m "Mana versija 1.0.3 "

Tagu atrašana jūsu kodā

Tagad, kad esam izveidojuši dažus tagus, apskatīsim, kas mums ir:

$ git tags -l
Izlaidums-20190401
v1.0.1
v1.0.2
v1.0.3

Mēs varam redzēt, ka visi mūsu tagi tiek parādīti alfabētiskā secībā. Plašāku informāciju par tagiem varat iegūt, izmantojot “-n”Kur apzīmē komentāru rindu skaitu.

$ git tags -n1
Laidiens-20190401 Atjaunināts README.md
v1.0.1 Atjaunināts README.md
v1.0.2 Mana versija 1.0.2
v1.0.3 Mana versija 1.0.3

Šeit jūs varat pamanīt atšķirību starp viegliem un anotētiem tagiem. Šajā piemērā “Release-20190401” un “v1.0.1 ”ir viegli tagi. “V1.0.2 ”un“ v1.0.3 ”ir anotētas atzīmes. Viņi visi norāda uz vienu un to pašu apņemšanos (apņemties 34671):

$ git žurnāls
veikt 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> master, tags: v1.0.4)
Autors: Zaks H
Datums: sestdiena, aprīlis 6 21:06:02 2019 -0700
 
Pievienota 2. funkcija
 
izdarīt 161c6e564e79624623ed767397a98105426d0ec4
Autors: Zaks H
Datums: sestdiena, aprīlis 6 21:05:25 2019 -0700
 
Pievienota 1. funkcija
 
veikt 34671d824f9b9951e57f867998cb3c02a11c4805 (tags: v1.0.3, tags: v1.0.2,
tags: v1.0.1, atzīme: izlaidums-20190401)
Autors: Zaks H
Datums: sestdien, 6. aprīlī 20:24:53 2019 –0700
 
Atjaunināts README.md
 
apņemties afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (izcelsme / kapteinis)
Autors: Zaks H
Datums: sestdien, 6. aprīlī 20:23:55 2019 -0700
 
Tajā

Tomēr vieglie tagi parāda paša apņemšanās komentārus, kas ir “Atjaunināts README.md ”, kamēr anotētās atzīmes parāda atsevišķus komentārus, kas tiem tika pievienoti tagu izveides procesā.

Padoms: Ja vēlaties atrast konkrēta taga taga izpildes numuru, varat izmantot komandu “git show”:

$ git šovs v1.0.3
tags v1.0.3
Tagger: Zaks H
Datums: sestdien 6. aprīlī 20:43:30 2019 -0700
 
Mana versija 1.0.3
 
veikt 34671d824f9b9951e57f867998cb3c02a11c4805 (tags: v1.0.3, tags: v1.0.2, atzīme:
v1.0.1, atzīme: izlaidums-20190401)
Autors: Zaks H
Datums: sestdien, 6. aprīlī 20:24:53 2019 –0700
 
Atjaunināts README.md
 
diff --git a / README.md b / README.md
indekss 9daeafb… 180cf83 100644
--- a / LASĪT.md
+++ b / LASĪT.md
@@ -1 +1 @@
-pārbaude
+tests2

Vecāku saistību atzīmēšana

Varat arī atgriezties un atzīmēt vecāku saistību. Apskatīsim žurnālus:

$ git log - tiešsaistē
106e0bb (HEAD -> master, tags: v1.0.4) Pievienota 2. funkcija
161c6e5 pievienota 1. funkcija
34671d8 (tags: v1.0.3, tags: v1.0.2, tags: v1.0.1, tags: Release-20190401) Atjaunināts README.md
afe9b0c (izcelsme / kapteinis) Init
$

Mēs pamanījām, ka saistībai 161c6e5 nav saistīts tags. Mēs varam atzīmēt šo apņemšanos šādi:

$ git tag -a Izlaidums-20190402 161c6e5

Tas parādīs komentāru logu. Pēc komentāra ievietošanas mēs varam redzēt, ka mums tagad ir atzīmēta saistība:

$ git tags -n1
Laidiens-20190401 Atjaunināts README.md
Release-20190402 Pievienots tags vecākai saistībai
v1.0.1 Atjaunināts README.md
v1.0.2 Mana versija 1.0.2
v1.0.3 Mana versija 1.0.3
v1.0.4 Pievienota 2. funkcija

Tagu noņemšana

Pieņemsim, ka jūs nolemjat, ka nevēlaties “Atlaist” tagus, jo tie ir mulsinoši. Vispirms jūs varat atrast visus tagus “Release-”:

$ git tags -l izlaidums *
Izlaidums-20190401
Izlaidums-20190402

Tagad tos var noņemt, izmantojot opciju “-d”:

$ git tag -d Release-20190401
Dzēsts tags 'Release-20190401' (bija 34671d8)
$ git tag -d Release-20190402
Dzēsts tags 'Release-20190402' (bija 6ee37bc)

Ja mēs vēlreiz pārbaudīsim tagus, mums vajadzētu redzēt tikai tos tagus, kas sākas ar “v”:

$ git tags -n1
v1.0.1 Atjaunināts README.md
v1.0.2 Mana versija 1.0.2
v1.0.3 Mana versija 1.0.3
v1.0.4 Pievienota 2. funkcija

Tagu pārrakstīšana

Pieņemsim, ka mums ir situācija, kad “v1.0.4 ”atzīme iezīmē 2. funkciju:

$ git log - tiešsaistē
d7b18a4 (HEAD -> master) Pievienoja 3. funkciju
106e0bb (tags: v1.0.4) Pievienota 2. funkcija
161c6e5 pievienota 1. funkcija
34671d8 (tags: v1.0.3, tags: v1.0.2, tags: v1.0.1) Atjaunināts README.md
afe9b0c (izcelsme / kapteinis) Init

Bet mēs vēlamies tagu “v1.0.4 ”norāda uz 3. funkciju. Mēģinot to atkārtoti atzīmēt, tiek parādīta šāda kļūda:

$ git tags v1.0.4 d7b18a4
letāls: tag 'v1.0.4 'jau pastāv

Mēs varam pārvarēt šo problēmu, izmantojot opciju “-f”:

$ git tags -f v1.0.4 d7b18a4
Atjaunināts tags 'v1.0.4 '(bija 106e0bb)

Ja vēlreiz pārbaudīsim žurnālu, redzēsim, ka tags ir pārvietots uz vēlamo saistību:

$ git log - tiešsaistē
d7b18a4 (HEAD -> master, tag: v1.0.4) Pievienota iezīme 3
106e0bb Pievienota 2. funkcija
161c6e5 pievienota 1. funkcija
34671d8 (tags: v1.0.3, tags: v1.0.2, tags: v1.0.1) Atjaunināts README.md
afe9b0c (izcelsme / kapteinis) Init

Varat arī izdzēst tagu un atkārtoti to pievienot jaunai saistībai.

Tagu kopīgošana ar citiem lietotājiem

Nospiežot kodu uz attālo krātuvi, Git tagi netiek automātiski nospiesti. Ja vēlaties koplietot savus tagus ar citiem lietotājiem, jums tie ir jāpiespiež vienīgi.

Tagus var uzstādīt šādi:

$ git push izcelsme v1.0.4
Objektu skaitīšana: 12, izdarīts.
Delta saspiešana, izmantojot līdz 4 pavedieniem.
Objektu saspiešana: 100% (4/4), pabeigta.
Rakstot objektus: 100% (12/12), 902 baiti | 150.00 KiB / s, izdarīts.
Kopā 12 (delta 0), atkārtoti izmantota 0 (delta 0)
Kam / Lietotāji / zakh / _work / LearnGIT / git_tagging / remote / project_mayhem
* [jauns tags] v1.0.4 -> v1.0.4

Ja citi lietotāji klonē attālo repozitoriju, viņi redzēs tikai tagu, kas tika nospiests (“v1.0.4 ”šajā gadījumā).

Izmantojot filiāles vs tagus

Nozares ir noderīgas jaunām funkcijām vai eksperimentiem. Parasti jūs vēlaties sazaroties, kad ir jāveic turpmākais darbs un darbs traucē jūsu pašreizējo attīstību. No otras puses, tagi ir noderīgāki kā momentuzņēmumi. Jums tās vajadzētu izmantot, lai atcerētos konkrētas lietas, kuras jau esat izdarījis.

Noslēgumā

Git tags ir nepietiekami izmantota funkcija, kas var būt lielisks veids, kā sekot līdzi izlaidumiem un īpašajām funkcijām. Ja ap tagiem izveidojat labu praksi, tas var palīdzēt viegli sazināties ar savu izstrādes komandu un vienkāršot izstrādes procesus.

Turpmāka izpēte:

  • https: // git-scm.com / book / en / v2 / Git-Basics-Tagging
  • https: // programmatūras inženierija.stackexchange.com / questions / 165725 / git-branching-and-tagging-best-practice
  • https: // www.atlassian.com / git / tutorials / inspecting-a-repository / git-tag
  • https: // lv.vikipēdija.org / wiki / Software_versioning
  • https: // www.tehnopēdija.com / definition / 25977 / software-versioning
Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...
Instalējiet jaunāko Dolphin emulatoru Gamecube un Wii operētājsistēmai Linux
Delfīnu emulators ļauj jums spēlēt izvēlētās Gamecube un Wii spēles Linux personālajos datoros (PC). Tā kā Dolphin Emulator ir brīvi pieejams un atvē...
Kā lietot GameConqueror Cheat Engine Linux
Rakstā ir sniegts ceļvedis par GameConqueror apkrāptu dzinēja izmantošanu Linux. Daudzi lietotāji, kas spēlē spēles operētājsistēmā Windows, bieži izm...