Git

Sådan bruges Git Tags til at forbedre dine udviklingsprocesser

Sådan bruges Git Tags til at forbedre dine udviklingsprocesser
For de fleste udviklingsteams er Git blevet et vigtigt værktøj til versionskontrol. En stor grund til Gits popularitet er dens problemfri evne til at oprette grene. Udviklingsteams kan bruge filialer til at arbejde på specifikke funktioner eller udgivelser. Dog er Gits tag en ofte overset kommando, der kan hjælpe teams med at forenkle deres arbejdsgange. I denne artikel dykker vi ned i hvad, hvordan og hvorfor er det med Git-tagging.

Hvad er Git-tags?

Git tags er henvisninger til visse forpligtelser. De er som bogmærker. Du kan bruge enhver form for konvention, du vil oprette tags. Men de fleste udviklingsteams bruger versionsnumre som v1.0.1 eller v.1.1-a1 for at oprette tags.

Oprettelse af tags

Der er to typer tags i Git:

Letvægtsmærker

Letvægtsmærkerne er nemme at oprette. Du kan blot bruge følgende kommandolinje:

$ git-tag

Disse tags er gemt i .git-mappe i dit arbejdsområde.

Lad os oprette et par lette Git-tags:

$ git tag v1.0.1
$ git tag Release-20190401

I det første tilfælde oprettede vi et tag med “v1.0.1 ”. I det andet tilfælde oprettede vi et tag med “Release-20190401”. Letvægtsmærkerne returnerer ingen værdi. Det er også vigtigt at påpege, at fordi disse to tags blev gjort ryg mod ryg, peger de på den samme forpligtelse.

Kommenterede tags

Kommenterede tags giver dig mulighed for at gemme flere oplysninger. Du kan bruge indstillingen “-a” til at oprette disse tags:

$ git tag -a

Lad os prøve at oprette et kommenteret tag:

git tag -a v1.0.2

Det åbner et tekstvindue, hvor du kan indtaste en kommentar, der skal se sådan ud:

#
# Skriv en besked til tag:
# V1.0.2
# Linjer, der starter med '#', ignoreres.

Indtast en kommentar, og gem den. Så nu er dit tag v1.0.2 gemmes med en kommentar. Alternativt kan du direkte indtaste kommentaren i kommandolinjen sådan:

git tag -a v1.0.3-m "Min version 1.0.3 "

Find tags i din kode

Nu hvor vi har oprettet et par tags, lad os se hvad vi har:

$ git tag -l
Udgivelse-20190401
v1.0.1
v1.0.2
v1.0.3

Vi kan se, at alle vores tags vises i alfabetisk rækkefølge. Du kan få flere oplysninger om tags ved hjælp af “-n" hvor står for antallet af linjer i kommentarerne.

$ git tag -n1
Release-20190401 Opdateret README.md
v1.0.1 Opdateret README.md
v1.0.2 Min version 1.0.2
v1.0.3 Min version 1.0.3

Her kan du bemærke en forskel mellem lette og annoterede tags. I dette eksempel “Release-20190401” og “v1.0.1 ”er letvægtsmærker. “V1.0.2 ”og“ v1.0.3 ”er kommenterede tags. Alle peger på den samme forpligtelse (begå 34671):

$ git log
begå 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> master, tag: v1.0.4)
Forfatter: Zak H
Dato: Lør 6 apr 21:06:02 2019 -0700
 
Tilføjet funktion 2
 
begå 161c6e564e79624623ed767397a98105426d0ec4
Forfatter: Zak H
Dato: Lør 6. apr 21:05:25 2019 -0700
 
Tilføjet funktion 1
 
begå 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: v1.0.2,
tag: v1.0.1, tag: Release-20190401)
Forfatter: Zak H
Dato: Lør 6 apr 20:24:53 2019 -0700
 
Opdateret README.md
 
begå afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (origin / master)
Forfatter: Zak H
Dato: Lør 6. apr 20:23:55 2019 -0700
 
I det

Letvægtsmærkerne viser dog kommentarerne fra selve forpligtelsen, som er "Opdateret README.md ”, mens de kommenterede tags viser de individuelle kommentarer, der blev føjet til dem under tagoprettelsesprocessen.

Tip: Hvis du vil finde nummeret på et bestemt tag, kan du bruge kommandoen "git show":

$ git show v1.0.3
tag v1.0.3
Mærker: Zak H
Dato: Lør 6. apr 20:43:30 2019 -0700
 
Min version 1.0.3
 
begå 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: v1.0.2, tag:
v1.0.1, tag: Release-20190401)
Forfatter: Zak H
Dato: Lør 6 apr 20:24:53 2019 -0700
 
Opdateret README.md
 
diff --git a / README.md b / README.md
indeks 9daeafb… 180cf83 100644
--- a / README.md
+++ b / README.md
@@ -1 +1 @@
-prøve
+test2

Mærkning af ældre forpligtelser

Du kan også gå tilbage og tagge en ældre forpligtelse. Lad os se på logfiler:

$ git log - online
106e0bb (HEAD -> master, tag: v1.0.4) Tilføjet funktion 2
161c6e5 Tilføjet funktion 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1, tag: Release-20190401) Opdateret README.md
afe9b0c (origin / master) Init
$

Vi bemærker, at commit 161c6e5 ikke har et tilknyttet tag. Vi kan mærke denne forpligtelse som denne:

$ git tag -a Release-20190402 161c6e5

Det vil poppe op i kommentarfeltet. Når vi har lagt kommentaren, kan vi se, at vi har tagget forpligtelsen nu:

$ git tag -n1
Release-20190401 Opdateret README.md
Release-20190402 Tilføjet tag til en ældre forpligtelse
v1.0.1 Opdateret README.md
v1.0.2 Min version 1.0.2
v1.0.3 Min version 1.0.3
v1.0.4 Tilføjet funktion 2

Fjernelse af tags

Antag, du beslutter, at du ikke vil have “Release-” tags, da de er forvirrende. Du kan først finde alle “Release-“ tags:

$ git tag -l frigivelse *
Udgivelse-20190401
Udgivelse-20190402

Nu kan du fjerne dem med indstillingen “-d”:

$ git tag -d Release-20190401
Slettet tag 'Release-20190401' (var 34671d8)
$ git tag -d Release-20190402
Slettet tag 'Release-20190402' (var 6ee37bc)

Hvis vi tjekker tags igen, skal vi kun se de tags, der starter med "v":

$ git tag -n1
v1.0.1 Opdateret README.md
v1.0.2 Min version 1.0.2
v1.0.3 Min version 1.0.3
v1.0.4 Tilføjet funktion 2

Overskrivning af tags

Antag, vi har en situation, hvor “v1.0.4 ”-mærket kommer til funktion 2:

$ git log - online
d7b18a4 (HEAD -> master) Tilføjet funktion 3
106e0bb (tag: v1.0.4) Tilføjet funktion 2
161c6e5 Tilføjet funktion 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1) Opdateret README.md
afe9b0c (origin / master) Init

Men vi vil have mærket “v1.0.4 ”for at pege på Feature 3. Hvis vi forsøger at retagere det, får vi denne fejl:

$ git tag v1.0.4 d7b18a4
fatalt: tag 'v1.0.4 'eksisterer allerede

Vi kan løse dette problem med indstillingen “-f”:

$ git tag -f v1.0.4 d7b18a4
Opdateret tag 'v1.0.4 '(var 106e0bb)

Hvis vi tjekker loggen igen, ser vi, at koden er flyttet til den forpligtelse, vi ønsker:

$ git log - online
d7b18a4 (HEAD -> master, tag: v1.0.4) Tilføjet funktion 3
106e0bb Tilføjet funktion 2
161c6e5 Tilføjet funktion 1
34671d8 (tag: v1.0.3, tag: v1.0.2, tag: v1.0.1) Opdateret README.md
afe9b0c (origin / master) Init

Alternativt kan du også slette et tag og tilføje det igen til en ny forpligtelse.

Deling af tags med andre brugere

Når du skubber din kode til dit eksterne lager, bliver Git-tags ikke skubbet automatisk. Hvis du vil dele dine tags med andre brugere, skal du udelukkende skubbe dem.

Mærkerne kan skubbes sådan:

$ git push origin v1.0.4
Optælling af objekter: 12, færdig.
Delta-kompression ved hjælp af op til 4 tråde.
Komprimerende objekter: 100% (4/4), færdig.
Skriveobjekter: 100% (12/12), 902 bytes | 150.00 KiB / s, færdig.
I alt 12 (delta 0), genbrugt 0 (delta 0)
Til / Brugere / zakh / _work / LearnGIT / git_tagging / remote / project_mayhem
* [nyt tag] v1.0.4 -> v1.0.4

Hvis andre brugere nu kloner det eksterne lager, vil de kun se det tag, der blev skubbet (“v1.0.4 ”i dette tilfælde).

Brug af filialer vs tags

Filialer er nyttige til nye funktioner eller eksperimenter. Generelt vil du forgrene dig, når der er fremtidigt arbejde, der skal udføres, og arbejdet er forstyrrende for din nuværende udvikling. På den anden side er tags mere nyttige som snapshots. Du skal bruge dem til at huske bestemte ting, som du allerede har gjort.

Afslutningsvis

Git-tag er en underudnyttet funktion, der kan give en fantastisk måde at holde styr på udgivelser og specielle funktioner. Hvis du opretter god praksis omkring tags, kan det hjælpe dig med let at kommunikere med dit udviklingsteam og forenkle dine udviklingsprocesser.

Yderligere studier:

  • https: // git-scm.com / book / da / v2 / Git-Basics-Tagging
  • https: // softwareudvikling.stakkebytte.com / spørgsmål / 165725 / git-branching-and-tagging-best-practices
  • https: // www.atlassisk.com / git / tutorials / inspecting-a-repository / git-tag
  • https: // da.wikipedia.org / wiki / Software_versioning
  • https: // www.techopedia.com / definition / 25977 / softwareversionering
Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...