I comandi Git che abbiamo presentato finora costituiscono già un insieme non banale di azioni che è possibile fare lavorando con un repository Git.
In questa sezione, sposteremo l’attenzione su quelle funzioni di Git per rendere più semplice l’interazione quotidiana con i suoi numerosi possibili comandi.
In particolare, abbiamo visto visto che alcuni comandi possono essere formati da molte opzioni (come per esempio le varie possibili opzioni del comando git log). Molto spesso, nell’utilizzo quotidiano di Git, gli stessi comandi vengono ripetuti più e più volte, e spesso con le stesse opzioni. Dover ripetere ogni volta la stessa lunga sequenza di opzioni può diventare particolarmente fastidioso, per questo Git mette a disposizione la possibilità di creare degli alias.
Proviamo subito un esempio:
$ git st git: 'st' is not a git command. See 'git --help'. $ git config --global alias.st status $ git st On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: server.php
Cosa abbiamo fatto? Tramite git config abbiamo registrato un nuovo alias globale (cioè disponibile in tutti i repository locali). Tale alias si presenta come un nuovo comando, ma nella pratica ha lo stesso effetto di un git status.
Gli alias di Git hanno due caratteristiche importanti:
- possono includere oltre al comando anche le rispettive azioni
- permettono comunque di aggiungere altre opzioni ammesse dal comando
$ git st --short M server.php $ git config --global alias.sts status --short --branch $ git sts # main...origin/main [ahead 1] M server.php ?? removeme.txt
Esistono alcune collezioni di alias, ma è anche utile creare i propri alias che soddisfano le proprie necessità di tutti i giorni. In fondo gli alias servono per evitare di digitare troppi caratteri ogni volta che si esegue uno specifico e frequente comando Git.
Un buon set di partenza di scorciatoie, incluse o suggerite in quasi tutte le raccolte o gli articoli online, è il seguente:
git config –global alias.co checkout
git config –global alias.br branch
git config –global alias.ci commit
git config –global alias.st status
git config –global alias.df diff
git config –global alias.diff –cached
git config –global alias.lg log -p
git config –global alias.undo=reset –soft HEAD