Essere un sysadmin, un developer, un DevOp o addirittura un DevSecOp nel 2023 può voler dire tante cose, ma se c’è un aspetto comune relativo a queste figure è quello di non poter prescindere dagli strumenti che permettono di gestire il codice.
Perché tutto è codice.
Un concetto da sempre chiaro agli sviluppatori, e tutti i sysadmin hanno almeno sentito parlare una volta di Infrastructure As Code, ossia la metodologia che consente di convertire in codice interi datacenter. Vien quindi da se come padroneggiare il tool che consente una gestione fluida del codice sia diventato un requisito fondamentale per ogni operatore informatico.
E quel tool da ormai quasi un ventennio ha un solo nome: git.
Creato da Linus Torvalds, lo sviluppatore open-source più famoso di tutti i tempi e creatore del Kernel Linux, git è frutto dell’esigenza di collaborazione all’interno del team di sviluppo del Kernel, e come tutti gli strumenti di questo tipo va dritto al punto.
Questa serie di articoli vuole condividere alcuni suggerimenti, trucchi e best-practice sull’utilizzo di Git raccolti con vari appunti nel corso degli anni, con l’idea di creare una serie che nel tempo possa essere aggiornata ed arricchita per essere il più utile possibile a tutti.
Il repository di test
Chi vive nella linea di comando lo sa, c’è poco da fare, shortcut e automazioni sono la vera salvezza per la produttività, ed in questa prima parte verranno esplorati alcuni suggerimenti utili in questo senso.
Per svolgere gli esercizi verrà utilizzato un repository di test, nella cartella /git contenente semplici file di testo.
Il repository verrà inizializzato per utilizzare come branch principale main che oggi è il default su tutte le piattaforme online. In passato questo valore era master, ma nell’ottica di essere più inclusivi questo non è più utilizzato, pertanto il comando di inizializzazione sarà git init -b main:
Per operare all’interno del repository è necessario indicare due dati essenziali da parte dell’operatore che sono il nome utente e la sua mail di riferimento, mediante il comando git config --global:
Questi comandi inizializzeranno la creazione del file config molto importante nel contesto git, creato all’interno della directory del progetto .git ed il cui contenuto è in formato ini:
Nella cartella di progetto verranno creati cinque file, a cui verranno associati cinque commit:
Il risultato dovrebbe essere qualcosa di simile a questo:
Query e comandi alias
A questo punto il repository di test è popolato ed è già possibile interrogarlo per ricavarne informazioni, mediante git log, il quale invocato senza opzioni mostrerà la versione estesa dei commit in modalità paginabile.
Con le opportune opzioni però, git log potrà invece mostrare informazioni più sintetiche e compatte:
Le funzioni passabili a git log sono numerose e possono passare da una versione del precedente output ancora più compatta:
Fino all’utilizzo di una specifica formattazione personalizzata, con tanto di colori:
Vien da sé come ricordarsi tutte queste opzioni possa risultare problematico, ed è proprio per questo che Git supporta nel file di configurazione di cui sopra la dichiarazione degli alias, il cui formato è il seguente:
Creazione di uno standard operativo
Ma c’è di più.
Git offre la possibilità di dichiarare un file di configurazione generale, che deve risiedere nella home directory dell’utente e chiamarsi .gitconfig all’interno del quale possono essere dichiarate le opzioni di default che verranno adottate su ciascun repository.
Questo file offre la possibilità di non doversi più preoccupare per ciascun repository di inserire ad esempio il nome o la mail, ma di fare in modo che ogni comando git lanciato nel proprio sistema erediti le impostazioni dal file principale.
Interessante vero?
E la complessità di questo file dipende dalle proprie esigenze.
Per fare un esempio, il file che da sempre ho nella mia home directory ha questo contenuto:
Curiosi di sapere tutti quegli alias cosa fanno? Non rimane che testarli, magari proprio sul repository di test creato per questo articolo.
Conclusioni
La prima parte dell’articolo si conclude qui, nel prossimo verranno illustrate le varie modalità di commit, il concetto di amend ed il terrore dei sette mari: il rebase!
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.