Code, Learn

Come ignorare i file in git senza usare .gitignore

6 Agosto 2021 - 2 minuti di lettura

Nel quotidiano utilizzo di git per il codice dei progetti nel quale lavoriamo, per evitare di committare alcuni file o path si ricorre all’uso del file .gitignore.
Questo file contiene nomi di file, estensioni e path che permette a git di capire quali file nascondere in fase di commit, perché ritenuti non necessari ai fini del progetto.

Esempi di .gitignore possono essere file di configurazione specifici per il computer locale o file di configurazione dei vari editor di sviluppo o risultati delle compilazioni.

Questo “approccio .gitignore” è valido per elementi comuni all’interno del progetto, ma possiamo facilmente immaginare il caos che verrebbe generato se in un progetto ogni membro del team editasse file o path propri magari con path contenenti ad esempio username o altri dati futili per il progetto.
Fortunatamente git mette a disposizione delle alternative per evitare di aggiungere e committare file in maniera accidentale.

Non solo .gitignore

Ad esempio è possibile usare il file .git/info/exclude che lavora come .gitignore sul progetto.

Qualora si volessero ignorare esoteriche estensioni di file specifici di editor o alti tool che magari uno utilizza mentre altri membri del team no allora è possibile ricorrere ad una configurazione locale a livello utente. Tramite ~/.config/git/ignore si istruisce git affinché committi file che non vuoi che altri del team sappiano perché non di loro interesse. Così facendo è possibile lavorare all’esterno di aree che git non controlla rendendo quindi meno caotico il file .gitignore.

Ovviamente git ti permette di sapere se un file è ignorato o meno da git stesso. Il comando da utilizzare è git ls-file in questo modo:

  • git ls-files --others --exclude-from=.gitignore
  • git ls-files --others --exclude-from=.git/info/exclude

L’argomento –others serve a mostrare i file che non sono nell’indice mentre –exclude-from è un filtro da applicare per non mostrare i file. Pertanto, la prima versione mostra quindi i file ignorati che non sono elencati nel file .gitignore.

Un altro comando utile è git check-ignore che richiede un path come argomento. Questo comando restituisce il nome del file in caso l’elemento sia presente in uno dei file ignore.

Articolo scritto da