Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Tag e alias in Git

Impariamo ad utilizzare i tag di Git per accedere alle diverse versioni dei progetti e a definire gli alias dei comandi per digitare più velocemente le istruzioni per il versioning.
Impariamo ad utilizzare i tag di Git per accedere alle diverse versioni dei progetti e a definire gli alias dei comandi per digitare più velocemente le istruzioni per il versioning.
Link copiato negli appunti

Git presenta alcune funzionalità che permettono di semplificare le operazioni per la ricerca all'interno della cronologia dei progetti registrati nei repository, tagging, e la formulazione rapida delle istruzioni da inviare al DVCS, alias. Il loro utilizzo consente di incrementare la produttività delle sessioni di lavoro, anche nelle fasi di condivisione per lo sviluppo collaborativo.

I tag

Sostanzialmente in Git con il termine "taggare" intendiamo un'operazione con la quale creare dei collegamenti a determinati stati di avanzamento di un progetto, si tratta solitamente di passaggi cruciali per la sua evoluzione come per esempio il completamento di una prima stabile, la classica versione "1.0" di un'applicazione, l'aggiornamento di un ramo di sviluppo ("1.5.0", "1.5.1"..), o di una successiva major release ("2.0", "3.0"..).

A tal proposito, ricordiamo che il progetto sul quale sono stati basati la maggior parte degli esempio proposti in questa guida, "MyWP", non è altro che il risultato di una clonazione del repository di WordPress; utilizzando il comando git tag dalla directory di lavoro avremo quindi la possibilità di visualizzare un elenco di tutti i tag memorizzati in corso di implementazione:

Figura 1. Elenco dei tag di un progetto.
Elenco dei tag di un progetto.

La lista di tag prodotta può essere più o meno articolata, l'immagine precedente mostra soltanto una parte dell'output generato dall'istruzione, e dipende dalle scelte degli sviluppatori; nel caso di WordPress sono state taggati sia gli aggiornamenti più rilevanti dei rami (ad esempio "1.5"), sia le release di mantenimento e sicurezza ("1.5.1", "1.5.1.1"..) e sia i nuovi rami (ad esempio "2.0").

Nel caso in cui si vogliano elencare soltanto i tag relativi ad una specifica fase del versioning, sarà necessario passare a git tag il parametro -l seguito dal necessario pattern per la ricerca, ad esempio git tag -l 3* permetterà di estrarre tutti i tag del ramo "3.x".

Figura 2. Ricerca selettiva sui tag.
Ricerca selettiva sui tag

La già ben conosciuta wildcard "*" viene infatti utilizzata per esprimere il concetto di "qualsiasi elemento", quindi l'istruzione permetterà di ricercare qualunque tag il cui nome inizi con "3", indipendentemente dai caratteri che fanno seguito a tale cifra.

Definizione dei tag

I tag possono essere associati ad un numero variabile di informazioni, quelli più articolati rappresentano delle vere e proprie "annotazioni"; l'esempio seguente mostra la creazione di un tag tramite un'istruzione formata dal comando git tag seguita dal nome del tag introdotto dall'opzione -a e da un messaggio, a commento dell'operazione, definito tramite l'opzione -m.

Figura 3. Definizione di un tag.
Definizione di un tag

E' comunque possibile definire un tag evitando di ricorrere ad opzioni, cioè passando il nome del tag direttamente al comando git tag; tale procedura non porterà alla registrazione di altre informazioni se non quella riguardante il checksum, cioè la stringa alfanumerica per la verifica di integrità allocata in un file, relativo al commit dello stato di avanzamento a cui è associato il tag.

Figura 4. Definizione di un tag senza opzioni.
Definizione di un tag senza opzioni

Informazioni sui tag

git show è invece il comando che consente di accedere alle informazioni a corredo di un tag, l'output prodotto sarà naturalmente diverso a seconda del fatto che si sia scelto di definire un tag sotto forma di annotazione, quindi con opzioni, o senza opzioni. Nel caso specifico delle operazioni precedentemente effettuate, si noterà come le informazioni mostrate da git show applicato al tag "4.1.1.1" e creato con opzioni

Figura 5. Informazioni su un tag creato con opzioni.
Informazioni su un tag creato con opzioni

siano nettamente più numerose da quelle visualizzabili passando a git show il tag "4.1.1.1b", creato senza opzioni:

Figura 6. Informazioni su un tag creato senza opzioni.
Informazioni su un tag creato senza opzioni

Condivisione dei tag

Le procedure per la condivisione di risorse sui server remoti non prevedono anche il trasferimento automatico dei tag, si tratta di un'opzione predefinita del DVCS alla quale si può ovviare utilizzando il comando git push origin al quale passare come argomento il nome del tag precedentemente definito:

$ git push origin 4.4.1.1

In questo caso il sistema richiederà lo username e la password per l'accesso alla piattaforma remota utilizzata per la condivisione, come per esempio GitHub, una volta conclusa la fase per l'autenticazione l'operazione verrà confermata.

Le procedure di condivisione dei tag possono essere anche cumulative, passando l'opzione --tags al comando git push origin si avrà infatti la possibilità di condividere in remoto tutti i tag di un progetto fino ad ora disponibili soltanto per chi li ha definiti, senza la necessità di specificarne i singoli nomi.

$ git push origin --tags

Cancellazione dei tag

Così come possono essere creati, i tag possono essere anche cancellati, per far questo di dovrà passare al comando git tag l'opzione -d seguita dal nome del tag da rimuovere; l'immagine seguente mostra le istruzioni necessarie per la rimozione dei tag definiti negli esempio precedenti.

Figura 7. Cancellazione dei tag.
Cancellazione dei tag

Nel caso in cui un tag sia stato condiviso su server remoto si dovrà procedere anche alla rimozione da quest'ultimo operando tramite il comando git push origin seguito dalla stringa :refs/tags/nome-del-tag, ad esempio:

$ git push origin :refs/tags/4.4.1.1

Riguardo al percorso specificato, :refs/tags/, presto torneremo sull'argomento, per ora basti sapere che, in parole estremamente semplici, refs è un cartella che Git utilizza per per i riferimenti (detti appunto refs) quindi rappresenta la giusta collocazione per dei collegamenti come i tag.

Gli alias

Come i tag anche gli alias di Git rappresentano dei collegamenti, questa volta però parliamo di riferimenti di tipo puramente sintattico, concepiti con lo scopo di abbreviare i tempi necessari per la digitazione dei comandi. Sarà possibile associare un alias a tutti i comandi utilizzati più frequentemente scegliendo come personalizzarli a seconda delle proprie esigenze.

Per definire un alias si dovrà utilizzare il comando git config seguito dall'opzione --global, sarà poi necessario indicare il nome dell'alias concatenato tramite il punto fermo (".") alla keyword alias (alias.nome-alias), infine, si potrà indicare il comando da associare all'alias senza specificare il prefisso git. Si ipotizzi di voler utilizzare l'alias git st invece del classico git status, l'istruzione necessaria per la sua definizione sarà la seguente:

$ git config --global alias.st status

Come sarà possibile notare grazie all'immagine seguente, una volta creato l'alias git st e git status diventeranno intercambiabili:

Figura 8. Creazione e utilizzo di un alias.
Creazione e utilizzo di un alias

Nello stesso modo un alias di git commit denominato git ct potrebbe essere definito in questo modo:

$ git config --global alias.ct commit

Cancellazione di un alias

Per cancellare un alias si dovrà far ricorso all'opzione --unset inserita all'interno di un'istruzione strutturata in questo modo:

$ git config --global --unset alias.nome-alias

Motivo per il quale l'alias git st precedentemente creato potrà essere rimosso dal file di configurazione .gitconfig tramite un'istruzione come la seguente:

$ git config --global --unset alias.st

L'eliminazione dell'alias, come del resto accade per la sua creazione, non avrà alcun effetto sul funzionamento del comando originale, in questo caso git status.

Ti consigliamo anche