Cosa sono i tag git?
I tag Git sono suggerimenti per determinati commit. Sono come i segnalibri. Puoi usare qualsiasi tipo di convenzione che desideri creare tag. Ma la maggior parte dei team di sviluppo utilizza i numeri di versione come V1.0.1 o v.1.1-A1 per creare tag.
Creazione di tag
Esistono due tipi di tag in GIT:
Tag leggeri
I tag leggeri sono facili da creare. Puoi semplicemente usare la seguente riga di comando:
$ git tag
Questi tag sono archiviati in .cartella git del tuo repository di lavoro.
Creiamo alcuni tag GIT leggeri:
$ git tag v1.0.1
$ GIT TAG RELSED-20190401
Nel primo caso, abbiamo creato un tag con "V1.0.1 ". Nel secondo caso, abbiamo creato un tag con "Release-20190401". I tag leggeri non restituiscono alcun valore. Inoltre, è importante sottolineare che, poiché questi due tag sono stati fatti all'indietro, stanno indicando lo stesso commit.
Tag annotati
I tag annotati ti consentono di archiviare ulteriori informazioni. È possibile utilizzare l'opzione "-a" per creare questi tag:
$ git tag -a
Proviamo a creare un tag annotato:
Git Tag -A V1.0.2
Poplerà una finestra di testo per inserire un commento che dovrebbe assomigliare a questo:
#
# Scrivi un messaggio per tag:
# v1.0.2
# Le righe che iniziano con '##' verranno ignorate.
Inserisci un commento e salvalo. Quindi, ora il tuo tag v1.0.2 viene salvato con un commento. In alternativa, puoi inserire direttamente il commento nella riga di comando in questo modo:
Git Tag -A V1.0.3 -M "La mia versione 1.0.3 "
Trovare tag nel tuo codice
Ora che abbiamo creato alcuni tag, vediamo cosa abbiamo:
$ git tag -l
Release-20190401
v1.0.1
v1.0.2
v1.0.3
Possiamo vedere che tutti i nostri tag sono visualizzati in ordine alfabetico. Puoi ottenere maggiori informazioni sui tag utilizzando il "-n" dove rappresenta il numero di righe dei commenti.
$ git tag -n1
Release-20190401 Readme aggiornato.MD
v1.0.1 Readme aggiornato.MD
v1.0.2 La mia versione 1.0.2
v1.0.3 La mia versione 1.0.3
Qui puoi notare una differenza tra tag leggeri e annotati. In questo esempio, "Release-20190401" e "V1.0.1 "sono tag leggeri. Il "V1.0.2 "e" V1.0.3 "sono tag annotati. Tutti indicano lo stesso commit (commit 34671):
$ git log
commit 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (testa -> master, tag: v1.0.4)
Autore: Zak H
Data: sabato 6 aprile 21:06:02 2019 -0700
Funzione aggiunta 2
commit 161c6e564e79624623ed767397a98105426d0ec4
Autore: Zak H
Data: sabato 6 aprile 21:05:25 2019 -0700
Funzione aggiunta 1
commit 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: V1.0.2,
Tag: V1.0.1, tag: rilascio-20190401)
Autore: Zak H
Data: sabato 6 aprile 20:24:53 2019 -0700
Readme aggiornato.MD
commit afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (origine/master)
Autore: Zak H
Data: sabato 6 aprile 20:23:55 2019 -0700
Dentro
Tuttavia, i tag leggeri mostrano i commenti del commit stesso che viene "aggiornato readme.MD ”, mentre i tag annotati mostrano i singoli commenti che sono stati aggiunti durante il processo di creazione dei tag.
Mancia: Se vuoi trovare il numero di commit di un tag particolare, puoi utilizzare il comando "Git Show":
$ git show v1.0.3
tag v1.0.3
Tagger: Zak H
Data: sabato 6 aprile 20:43:30 2019 -0700
La mia versione 1.0.3
commit 34671d824f9b9951e57f867998cb3c02a11c4805 (tag: v1.0.3, tag: V1.0.2, tag:
v1.0.1, tag: rilascio-20190401)
Autore: Zak H
Data: sabato 6 aprile 20:24:53 2019 -0700
Readme aggiornato.MD
Diff --Git A/Readme.md b/readme.MD
INDICE 9DAEFB… 180CF83 100644
--- a/readme.MD
+++ b/readme.MD
@@ -1 +1 @@
-test
+test2
Contrassegnamento di commessi più vecchi
Puoi anche tornare indietro e taggare un commit più vecchio. Diamo un'occhiata ai registri:
$ git log --oneline
106e0bb (testa -> master, tag: v1.0.4) Aggiunta funzione 2
161C6E5 Aggiunta Funzione 1
34671d8 (tag: V1.0.3, tag: V1.0.2, tag: v1.0.1, tag: rilascio-20190401) Readme aggiornato.MD
AFE9B0C (Origin/Master) init
$
Notiamo che il commit 161c6e5 non ha un tag associato. Possiamo taggare questo commit in questo modo:
$ GIT TAG -A Release -20190402 161C6E5
Poplerà la finestra dei commenti. Dopo aver inserito il commento, possiamo vedere che ora abbiamo il commit taggato:
$ git tag -n1
Release-20190401 Readme aggiornato.MD
Release-20190402 ha aggiunto tag a un commit anziano
v1.0.1 Readme aggiornato.MD
v1.0.2 La mia versione 1.0.2
v1.0.3 La mia versione 1.0.3
v1.0.4 Funzione aggiunta 2
Rimozione dei tag
Supponiamo, decidi di non voler i tag "Rilascio" in quanto sono confusi. Puoi prima trovare tutti i tag "Release-":
$ git tag -l versione*
Release-20190401
Release-20190402
Ora puoi rimuoverli con l'opzione "-D":
$ git tag -d release -20190401
Tag eliminato 'Release-20190401' (era 34671d8)
$ git tag -d release -20190402
Tag eliminato 'Release-20190402' (era 6ee37bc)
Se controlliamo di nuovo i tag, dovremmo vedere solo i tag che iniziano con "V":
$ git tag -n1
v1.0.1 Readme aggiornato.MD
v1.0.2 La mia versione 1.0.2
v1.0.3 La mia versione 1.0.3
v1.0.4 Funzione aggiunta 2
Tag di sovrascrittura
Supponiamo che abbiamo una situazione in cui “V1.0.Il tag da 4 "è appeso alla caratteristica 2:
$ git log --oneline
D7B18A4 (testa -> master) Funzione aggiunta 3
106e0bb (tag: v1.0.4) Aggiunta funzione 2
161C6E5 Aggiunta Funzione 1
34671d8 (tag: V1.0.3, tag: V1.0.2, tag: v1.0.1) Readme aggiornato.MD
AFE9B0C (Origin/Master) init
Ma vogliamo il tag “V1.0.4 "per indicare la funzione 3. Se proviamo a rimonta, otteniamo questo errore:
$ git tag v1.0.4 D7B18A4
Fatal: tag 'v1.0.4 'esiste già
Possiamo superare questo problema con l'opzione "-f":
$ git tag -f v1.0.4 D7B18A4
Tag aggiornato 'V1.0.4 '(era 106e0bb)
Se controlliamo di nuovo il registro, vediamo che il tag è passato al commit che vogliamo:
$ git log --oneline
D7B18A4 (Head -> Master, Tag: V1.0.4) Aggiunta funzione 3
106e0bb ha aggiunto funzione 2
161C6E5 Aggiunta Funzione 1
34671d8 (tag: V1.0.3, tag: V1.0.2, tag: v1.0.1) Readme aggiornato.MD
AFE9B0C (Origin/Master) init
In alternativa, puoi anche eliminare un tag e nuovamente aggiungerlo a un nuovo commit.
Condivisione di tag con altri utenti
Quando spingi il codice nel tuo repository remoto, i tag GIT non vengono spinti automaticamente. Se vuoi condividere i tuoi tag con altri utenti, devi spingerli esclusivamente.
I tag possono essere spinti in questo modo:
$ git push origin v1.0.4
Contare gli oggetti: 12, fatto.
Compressione delta usando fino a 4 thread.
Oggetti di compressione: 100% (4/4), fatto.
Oggetti di scrittura: 100% (12/12), 902 byte | 150.00 kib/s, fatto.
Totale 12 (Delta 0), riutilizzato 0 (Delta 0)
A/utenti/zakh/_work/apprendimento/git_tagging/remote/project_mayhem
* [nuovo tag] V1.0.4 -> V1.0.4
Ora, se altri utenti clonano il repository remoto, vedranno solo il tag che è stato spinto ("V1.0.4 "in questo caso).
Usando i rami vs tag
I rami sono utili per nuove funzionalità o sperimentando. In generale, si desidera ramificare quando c'è un lavoro futuro che deve essere fatto e il lavoro è dirompente per il tuo sviluppo attuale. D'altra parte, i tag sono più utili come istantanee. Dovresti usarli per ricordare cose particolari che hai già fatto.
Insomma
Git Tag è una funzione sottoutilizzata in grado di fornire un ottimo modo per tenere traccia delle versioni e delle caratteristiche speciali. Se imposti buone pratiche attorno ai tag, può aiutarti a comunicare facilmente con il tuo team di sviluppo e semplificare i tuoi processi di sviluppo.
Ulteriori studi: