Hva er Git Tags?
Git-koder er pekepinner til visse forpliktelser. De er som bokmerker. Du kan bruke alle slags konvensjoner du vil lage koder. Men de fleste utviklingsteam bruker versjonsnumre som v1.0.1 eller v.1.1-a1 for å lage koder.
Opprette tagger
Det er to typer koder i Git:
- Lette merker
- Kommenterte merker
Lette merker
De lette kodene er enkle å lage. Du kan ganske enkelt bruke følgende kommandolinje:
$ git tagDisse kodene er lagret i .git-mappen til arbeidsområdet ditt.
La oss lage noen lette Git-koder:
$ git tag v1.0.1$ git tag Release-20190401
I det første tilfellet opprettet vi en tag med “v1.0.1". I det andre tilfellet opprettet vi en tag med “Release-20190401”. De lette kodene gir ingen verdi. Det er også viktig å påpeke at fordi disse to kodene ble gjort rygg mot rygg, peker de på samme forpliktelse.
Kommenterte merker
Kommenterte koder lar deg lagre mer informasjon. Du kan bruke “-a” -alternativet til å opprette disse kodene:
$ git tag -aLa oss prøve å lage en merket tag:
git tag -a v1.0.2Det vil dukke opp et tekstvindu for å skrive inn en kommentar som skal se slik ut:
## Skriv en melding for taggen:
# V1.0.2
# Linjer som begynner med '#' vil bli ignorert.
Skriv inn en kommentar og lagre den. Så nå er taggen din v1.0.2 lagres med en kommentar. Alternativt kan du skrive inn kommentaren direkte på kommandolinjen slik:
git tag -a v1.0.3-m "Min versjon 1.0.3 "Finne tagger i koden din
Nå som vi har laget noen få koder, la oss se hva vi har:
$ git tag -lUtgivelse-20190401
v1.0.1
v1.0.2
v1.0.3
Vi kan se at alle kodene våre vises i alfabetisk rekkefølge. Du kan få mer informasjon om kodene ved å bruke “-n
Utgivelse-20190401 Oppdatert README.md
v1.0.1 Oppdatert README.md
v1.0.2 Min versjon 1.0.2
v1.0.3 Min versjon 1.0.3
Her kan du merke en forskjell mellom lette og merkede tagger. I dette eksemplet, “Release-20190401” og “v1.0.1 ”er lette koder. “V1.0.2 ”og“ v1.0.3 ”er merkede tagger. Alle peker på den samme forpliktelsen (begå 34671):
$ git-loggbegå 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> master, tag: v1.0.4)
Forfatter: Zak H
Dato: Lør 6. april 21:06:02 2019 -0700
Lagt til funksjon 2
begå 161c6e564e79624623ed767397a98105426d0ec4
Forfatter: Zak H
Dato: Lør 6. april 21:05:25 2019 -0700
Lagt til funksjon 1
begå 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: v1.0.2,
tag: v1.0.1, tag: Utgivelse-20190401)
Forfatter: Zak H
Dato: Lør 6. april 20:24:53 2019 -0700
Oppdatert README.md
begå afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (origin / master)
Forfatter: Zak H
Dato: Lør 6. april 20:23:55 2019 -0700
I det
Imidlertid viser de lette kodene kommentarene fra selve forpliktelsen, som er “Oppdatert README.md ”, mens merkede tagger viser de individuelle kommentarene som ble lagt til dem under opprettingen av taggen.
Tips: Hvis du vil finne kommisjonsnummeret til en bestemt tag, kan du bruke kommandoen "git show":
$ git show v1.0.3tag v1.0.3
Tagger: Zak H
Dato: Lør 6. apr 20:43:30 2019 -0700
Min versjon 1.0.3
begå 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: v1.0.2, tag:
v1.0.1, tag: Utgivelse-20190401)
Forfatter: Zak H
Dato: Lør 6. april 20:24:53 2019 -0700
Oppdatert README.md
diff --git a / README.md b / README.md
indeks 9daeafb… 180cf83 100644
--- a / README.md
+++ b / README.md
@@ -1 +1 @@
-test
+test2
Merking av eldre forpliktelser
Du kan også gå tilbake og merke en eldre forpliktelse. La oss se på loggene:
$ git log --online106e0bb (HEAD -> master, tag: v1.0.4) Lagt til funksjon 2
161c6e5 Lagt til funksjon 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1, tag: Release-20190401) Oppdatert README.md
afe9b0c (opprinnelse / master) Init
$
Vi merker at commit 161c6e5 ikke har en tilknyttet tag. Vi kan merke denne forpliktelsen slik:
$ git tag -a Release-20190402 161c6e5Det vil dukke opp kommentarvinduet. Etter at vi har lagt inn kommentaren, kan vi se at vi har merket forpliktelsen nå:
$ git tag -n1Utgivelse-20190401 Oppdatert README.md
Release-20190402 Lagt til tagg til en eldre forpliktelse
v1.0.1 Oppdatert README.md
v1.0.2 Min versjon 1.0.2
v1.0.3 Min versjon 1.0.3
v1.0.4 Lagt til funksjon 2
Fjerner tagger
Anta at du bestemmer deg for at du ikke vil ha "Slipp" -kodene, da de er forvirrende. Du finner først alle “Release-” -koder:
$ git tag -l Release *Utgivelse-20190401
Utgivelse-20190402
Nå kan du fjerne dem med alternativet “-d”:
$ git tag -d Release-20190401Slettet tag 'Release-20190401' (var 34671d8)
$ git tag -d Release-20190402
Slettet tag 'Release-20190402' (var 6ee37bc)
Hvis vi sjekker kodene igjen, bør vi bare se kodene som begynner med “v”:
$ git tag -n1v1.0.1 Oppdatert README.md
v1.0.2 Min versjon 1.0.2
v1.0.3 Min versjon 1.0.3
v1.0.4 Lagt til funksjon 2
Overskrivingskoder
Anta at vi har en situasjon der “v1.0.4 ”-koden kommer til funksjon 2:
$ git log --onlined7b18a4 (HEAD -> master) Lagt til funksjon 3
106e0bb (tag: v1.0.4) Lagt til funksjon 2
161c6e5 Lagt til funksjon 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1) Oppdatert README.md
afe9b0c (opprinnelse / master) Init
Men vi vil ha taggen “v1.0.4 ”for å peke på Feature 3. Hvis vi prøver å merke om det, får vi denne feilen:
$ git tag v1.0.4 d7b18a4dødelig: tag 'v1.0.4 'eksisterer allerede
Vi kan løse dette problemet med alternativet "-f":
$ git tag -f v1.0.4 d7b18a4Oppdatert tag 'v1.0.4 '(var 106e0bb)
Hvis vi sjekker loggen på nytt, ser vi at koden har flyttet til det tilsagnet vi ønsker:
$ git log --onlined7b18a4 (HEAD -> master, tag: v1.0.4) Lagt til funksjon 3
106e0bb Lagt til funksjon 2
161c6e5 Lagt til funksjon 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1) Oppdatert README.md
afe9b0c (opprinnelse / master) Init
Alternativt kan du også slette en kode og legge den til på nytt i en ny kommisjon.
Dele tagger med andre brukere
Når du skyver koden til det eksterne depotet ditt, blir ikke Git-tagger presset automatisk. Hvis du vil dele taggene dine med andre brukere, må du bare skyve dem.
Merkelappene kan skyves slik:
$ git push origin v1.0.4Telleobjekter: 12, ferdig.
Delta komprimering med opptil 4 tråder.
Komprimerende gjenstander: 100% (4/4), ferdig.
Skriveobjekter: 100% (12/12), 902 byte | 150.00 KiB / s, ferdig.
Totalt 12 (delta 0), gjenbrukt 0 (delta 0)
Til / Brukere / zakh / _work / LearnGIT / git_tagging / remote / project_mayhem
* [ny tag] v1.0.4 -> v1.0.4
Nå, hvis andre brukere kloner det eksterne depotet, vil de bare se koden som ble presset (“v1.0.4 ”i dette tilfellet).
Bruke filialer mot tagger
Grener er nyttige for nye funksjoner eller eksperimentering. Vanligvis vil du forgrene deg når det er fremtidig arbeid som må gjøres og arbeidet er forstyrrende for din nåværende utvikling. På den annen side er tagger mer nyttige som øyeblikksbilder. Du bør bruke dem til å huske bestemte ting du allerede har gjort.
For å konkludere
Git tag er en underutnyttet funksjon som kan gi en flott måte å holde oversikt over utgivelser og spesielle funksjoner. Hvis du setter opp god praksis rundt koder, kan det hjelpe deg med å enkelt kommunisere med utviklingsteamet ditt og forenkle utviklingsprosessene dine.
Videre studier:
- https: // git-scm.com / book / no / v2 / Git-Basics-Tagging
- https: // programvareingeniør.stackebytte.no / spørsmål / 165725 / git-branching-and-tagging-best-practices
- https: // www.atlassian.com / git / tutorials / inspecting-a-repository / git-tag
- https: // no.wikipedia.org / wiki / Software_versioning
- https: // www.techopedia.no / definisjon / 25977 / programvareversjon