Site icon Tosolini.info

gitignore best practices

Sicuramente quando si crea un progetto moderno, per quanto piccolo che sia, c’è l’esigenza di avere un backup, con tanto di versionamento su github.com o su gitlab.com.

Sono servizi sostanzialmente gratuiti di enorme utilità, come detto per il backup, per avere uno storico delle versioni caricate, ma anche di confronto e miglioramento con altri programmatori.

Tuttavia non si può caricare tutto, l’esempio più banale sono le chiavi API di qualche servizio esterno che magari abbiamo utilizzato, oppure le credenziali al nostro database. Ma anche banalmente i file temporanei del nostro computer, ad esempio il mac piazza un file chiamato DS_STORE in tutte le cartelle, Windows mette thumbs.db.

Mettendo un file che si chiamerà .gitignore nella root del progetto (pongo l’attenzione al punto prima del nome, che di fatto sui sistemi Unix Like determinerà che quello è un file nascosto) avremo modo di indicare a Git, di ignorare l’elenco di file e/o cartelle in esso contenuto. Questo è quello di base che utilizzo io:

# electron #
############
node_modules/
dist/
private/

# Compiled #
############
*.com
*.class
*.dll
*.exe
*.o
*.so

# compressed files #
####################
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# operating systems #
#####################
.DS_Store
.DS_Store?
._*
.Trashes
ehthumbs.db
Thumbs.db
.bak
.ori
.vscode

# Logs and databases #
######################
*.log
*.sql
*.sqlite

Questa lista ovviamente può essere espansa a seconda delle situazioni, la stessa GitHub propone una serie lunghissima di template a seconda della tipologia di utilizzo per programmazione o prodotto.

Chiaramente si possono indicare cartelle, come nella parte superiore dell’esempio, dove ad esempio in private si possono indicare chiavi private, oppure si possono indicare tipi di file, come nel caso dei database e logs. In genere è consigliato non caricare file zippati ed eseguibili, che invece nel nostro computer potremo aver dimenticato dopo aver scaricato una libreria o testato una compilazione.

Exit mobile version