Hva er git -tagger?
Git -tagger er pekere på visse forpliktelser. De er som bokmerker. Du kan bruke alle slags stevner du vil lage tagger. Men de fleste utviklingsteam bruker versjonsnumre som V1.0.1 eller v.1.1-A1 for å lage tagger.
Opprette tagger
Det er to typer tagger i git:
Lette tagger
De lette taggene er enkle å lage. Du kan ganske enkelt bruke følgende kommandolinje:
$ git tag
Disse taggene er lagret i .Git -mappen til arbeidsreposten din.
La oss lage noen få lette git -tagger:
$ git tag v1.0.1
$ git tag utgivelse-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 taggene returnerer ikke noen verdi. Det er også viktig å påpeke at fordi disse to taggene ble gjort rygg mot rygg, peker de på samme forpliktelse.
Kommenterte tagger
Annoterte tagger lar deg lagre mer informasjon. Du kan bruke alternativet “-a” for å opprette disse taggene:
$ git tag -a
La oss prøve å lage en kommentert tag:
git tag -a v1.0.2
Det vil hylle et tekstvindu for deg å legge inn en kommentar som skal se slik ut:
#
# Skriv en melding for tag:
# v1.0.2
# Linjer som begynner med '#' vil bli ignorert.
Skriv inn en kommentar og lagre den. Så nå taggen V1.0.2 lagres med en kommentar. Alternativt kan du direkte legge inn kommentaren i kommandolinjen som denne:
git tag -a v1.0.3 -m "Min versjon 1.0.3 "
Finne tagger i koden din
Nå som vi har laget noen få tagger, la oss se hva vi har:
$ git tag -l
Utgivelse-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 taggene ved å bruke "-n" der står for antall linjer i kommentarene.
$ git tag -n1
Release-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 kommenterte tagger. I dette eksemplet “Release-20190401” og “V1.0.1 ”er lette tagger. “V1.0.2 ”og“ V1.0.3 ”er kommenterte tagger. Alle peker på samme forpliktelse (forpliktelse 34671):
$ git log
forpliktelse 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (head -> master, tag: v1.0.4)
Forfatter: Zak H
Dato: Lør 6. april 21:06:02 2019 -0700
Lagt til funksjon 2
Commit 161c6e564e79624623Ed767397a98105426d0ec4
Forfatter: Zak H
Dato: Lør 6. april 21:05:25 2019 -0700
Lagt til funksjon 1
forpliktelse 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
Commit Afe9B0C7C9FBCE3C3D585AFE67358A5EEC226E2C (Origin/Master)
Forfatter: Zak H
Dato: Lør 6. april 20:23:55 2019 -0700
I det
Imidlertid viser de lette taggene kommentarene fra selve forpliktelsen som er "oppdatert readme.MD ”, mens de kommenterte taggene viser de individuelle kommentarene som ble lagt til dem under opprettelsesprosessen.
Tips: Hvis du vil finne forpliktelsesnummeret til en bestemt tag, kan du bruke kommandoen “Git Show”:
$ git show v1.0.3
Tag v1.0.3
Tagger: Zak H
Dato: Lør 6. april 20:43:30 2019 -0700
Min versjon 1.0.3
forpliktelse 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å tømmerstokkene:
$ git log --oneline
106E0BB (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: utgivelse-20190401) Oppdatert Readme.MD
AFE9B0C (Origin/Master) Init
$
Vi merker at Commit 161c6e5 ikke har en tilknyttet tag. Vi kan merke denne forpliktelsen slik:
$ git tag -A Release -20190402 161C6E5
Det vil hylle kommentarvinduet. Etter at vi har lagt inn kommentaren, kan vi se at vi har forpliktelsen merket nå:
$ git tag -n1
Release-20190401 Oppdatert ReadMe.MD
Utgivelse-20190402 Lagt 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
Fjerne tagger
Anta at du bestemmer deg for at du ikke vil ha "utgivelsen-" tags som de er forvirrende. Du kan først finne alle “Release-” -merker:
$ git tag -l utgivelse*
Utgivelse-20190401
Utgivelse-20190402
Nå kan du fjerne dem med "-D" -alternativet:
$ git tag -D Release -20190401
Slettet tag 'utgivelse-20190401' (var 34671d8)
$ git tag -D Release -20190402
Slettet tag 'utgivelse-20190402' (var 6eee37bc)
Hvis vi sjekker taggene igjen, bør vi bare se taggene som starter med “V”:
$ git tag -n1
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
Overskriving av tagger
Anta at vi har en situasjon der “v1.0.4 ”-taggen er å spille 2:
$ git log --oneline
d7b18a4 (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 (Origin/Master) Init
Men vi vil ha taggen “V1.0.4 ”å peke på funksjon 3. Hvis vi prøver å ta det tilbake, får vi denne feilen:
$ git tag v1.0.4 D7B18A4
FATAL: TAG 'V1.0.4 'eksisterer allerede
Vi kan overvinne dette problemet med alternativet “-f”:
$ git tag -f v1.0.4 D7B18A4
Oppdatert tag 'v1.0.4 '(var 106e0bb)
Hvis vi sjekker loggen igjen, ser vi at taggen har flyttet til forpliktelsen vi ønsker:
$ git log --oneline
D7B18A4 (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 (Origin/Master) Init
Alternativt kan du også slette en tag og legge den til på nytt til en ny forpliktelse.
Deling av tagger med andre brukere
Når du skyver koden din til det eksterne depotet, blir ikke git -tagger skyvet automatisk. Hvis du vil dele taggene dine med andre brukere, må du utelukkende skyve dem.
Taggene kan skyves slik:
$ git push origin v1.0.4
Teller objekter: 12, gjort.
Delta -komprimering ved bruk av opptil 4 tråder.
Komprimerende objekter: 100% (4/4), gjort.
Skrive objekter: 100% (12/12), 902 byte | 150.00 kib/s, gjort.
Totalt 12 (Delta 0), gjenbrukt 0 (Delta 0)
Til/brukere/zakh/_work/learngit/git_tagging/ekstern/project_mayhem
* [Ny tag] V1.0.4 -> V1.0.4
Hvis andre brukere kloner det eksterne depotet, vil de bare se taggen som ble presset (“V1.0.4 ”i dette tilfellet).
Bruke grener vs tagger
Grener er nyttige for nye funksjoner eller eksperimentere. Generelt 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-taggen er en underutnyttet funksjon som kan gi en flott måte å holde rede på utgivelser og spesielle funksjoner. Hvis du setter opp god praksis rundt tagger, kan det hjelpe deg med å kommunisere med utviklingsteamet ditt og forenkle utviklingsprosessene dine.
Videre studier: