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
- Anotētās atzīmes
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 -aMēģināsim izveidot anotētu tagu:
git tag -a v1.0.2Tas 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 -lIzlaidums-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
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ālsveikt 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.3tags 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 161c6e5Tas 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 -n1Laidiens-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-20190401Dzē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 -n1v1.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 d7b18a4letā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 d7b18a4Atjauninā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.4Objektu 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