Full Stack

Come creare un alias in Git

Autore

Manuel Ricci

Arrivati a questo punto abbiamo visto un po’ di roba, ma ce n’è ancora di strada da fare per diventare un Master of Git.

In questa breve lezione cercheremo di semplificarci la vita. Prendiamo in considerazione il comando che abbiamo visto durante la lezione sul come vedere la cronologia delle modifiche. Il comando git log con la formattazione personalizzata era questo:

1$ git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short

Per niente semplice da ricordare, figurarsi da scrivere. Se vi avvalete di un sistema di autocompletamento (come quello che mi spoilera i comandi nelle video lezioni) il problema si pone relativamente per quanto a volte si usano comandi simili e l’autocompletamento potrebbe non essere proprio utilissimo.

In ogni caso Git ci aiuta a semplificarci la vita dandoci la possibilità di creare degli alias. In sostanza noi decidiamo un termine a nostro piacimento e gli associamo un comando specifico.

Il comando visto in precedenza ci mostra la cronologia della nostra repository, quindi possiamo usare come alias il termine storia.

In questo modo ci basterà scrivere git hist per eseguire git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short

Non male, vero? Ma come si fa?

Per farlo ci viene in soccorso un nostro vecchio amico git config che abbiamo già visto e utilizzato in precedenza quando abbiamo dovuto configurare la nostra identità e il template personalizzato per il messaggio di commit.

Configurare un alias da riga di comando

Per configurare un alias abbiamo diversi modi, il primo tra tutti è da riga di comando con l’apposito, per l’appunto, comando:

1$ git config --global alias.co checkout
2$ git config --global alias.br branch
3$ git config --global alias.ci commit
4$ git config --global alias.st status

Vi ricordo che --global imposterà gli alias nel file .gitconfig nella directory utente, potete sempre usare --system e --local per specificare le altre due posizioni. Rispettivamente nella cartella di installazione o nella directory di lavoro. In quest’ultimo caso, dato che siamo freschi freschi da esplorazione nel database, li aggiunge al file config presente nella .git directory.

I quattro comandi eseguiti in precedenza però non impostano granchè, sono solamente delle abbreviazioni di comandi che anche se scriviamo per esteso non ci portano via così tanto tempo (se sostieni il contrario allora non dovrai più lamentarti dei xk e dei cm :D).

Per impostare un alias un pochino più complesso si fa così:

1$ git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"

In breve, basta mettere tra apici il comando e il gioco è fatto.

Configurare un alias da file config

Se non vuoi passare dalla riga di comando, ma da editor puoi sempre entrare nella .git directory e aprire nel tuo editor il file config che trovi subito appena entri nella directory.

File config nella git directory

Per aprire il file in Visual Studio Code ti basterà eseguire il comando:

1$ code config

Il mio file locale contiene di default queste diciture:

1[core]
2    repositoryformatversion = 0
3    filemode = true
4    bare = false
5    logallrefupdates = true

Se volessi aggiungere un alias mi basterà far seguire quanto segue:

1[alias]
2    hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short

In questo possiamo omettere gli apici all’inizio e alla fine del comando.

Salvare e anche qui il gioco è fatto.

Potrò quindi eseguire il comando git hist al posto di git log...

Configurare un alias da .gitconfig

La stessa cosa vista nel paragrafo precedente può essere replicata se gli alias li volessimo usare tra diversi progetti. Nella nostra directory utente ci sarà un file .gitconfig, basterà aprire anche lui nell’editor e scrivere la medesima cosa vista precedentemente.

Ipotizzando di voler riportare tutto gli alias visti finora nel file .gitconfig nella cartella utente basterà far seguire, nel file .gitconfig

1[alias]
2  co = checkout
3  ci = 'commit -m'
4  st = status
5  br = branch
6  hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
7  type = cat-file -t
8  dump = cat-file -p

Per eseguire i rispettivi alias basterà far precedere git seguito dal nome dell’alias.

Nell’esempio qui sopra ho aggiunto anche cat-file –t e -p visti nella lezione sulla navigazione del database di git che ci mostrano il tipo di oggetto e il suo contenuto.

Ho modificato commit affinché includa anche il flag per scrivere il messaggio, così che il comando potrà essere il seguente:

1$ git ci “Messaggio di commit”

Altri alias che andrei ad aggiungere sono:

1unstage = reset HEAD -- (se si fa seguire il nome di un file viene tolto dalla staging area, altrimenti tutti i file verranno rimossi)
2last = log -1 HEAD (per vedere l’ultima commit)

Come rimuovere un alias in git

Se avete la necessità di rimuovere un alias perché magari è stato scritto male o non vi serve più, potete sempre usare il seguente comando per eliminarlo:

1$ git config --global --unset alias.NOME

Dove NOME è il nome dell’alias che si vuole eliminare. Questo comando non è solo per rimuovere gli alias, ma in generale per rimuovere una variabile dalla configurazione di Git.

Conclusioni

Ora che abbiamo scoperto questa piccola chicca, in futuro se dovessimo mai trovare un comando complesso che ci troviamo a scrivere una tonnellata di volte, sappiamo di poter contare sugli alias.

Caricamento...

Diventiamo amici di penna? ✒️

Iscriviti alla newsletter per ricevere una mail ogni paio di settimane con le ultime novità, gli ultimi approfondimenti e gli ultimi corsi gratuiti puubblicati. Ogni tanto potrei scrivere qualcosa di commerciale, ma solo se mi autorizzi, altrimenti non ti disturberò oltre.

Se non ti piace la newsletter ti ricordo la community su Discord, dove puoi chiedere aiuto, fare domande e condividere le tue esperienze (ma soprattutto scambiare due meme con me). Ti aspetto!

Ho in previsione di mandarti una newsletter ogni due settimane e una commerciale quando capita.