Se lo provi in questo modo, fallirà, perché finirai per inserire nella lista nera le directory nella tua struttura.
Per risolvere, si desidera inserire nella blacklist tutto ciò che non è una directory e non è uno dei tipi di file che si desidera eseguire il commit, senza però inserire nella blacklist le directory .
Il .gitignorefile che farà questo:
# First, ignore everything
*
# Now, whitelist anything that's a directory
!*/
# And all the file types you're interested in.
!*.one
!*.two
!*.etc
Testato questo in una struttura a tre livelli bianco-elenco per .txti file in presenza di *.one, *.twoe *.threefile utilizzando un .gitignoresi trovano nella directory radice del repository - funziona per me. Non dovrai aggiungere .gitignorefile a tutte le directory nella tua struttura.
Le informazioni che ho usato per capire la risposta provenivano, tra le altre cose, da questo (stackoverflow.com).