Ho visto domande simili ( 1 , 2 e 3 ), ma non ottengo una soluzione adeguata.
Devo ignorare tutti i file in una particolare cartella tranne un tipo di file specifico. La cartella è una sottodirectory per il percorso principale. Fammi nominare la cartella Resources
. Dal momento che non voglio complicare le cose, lasciami ignorare i file in tutte le cartelle denominate Resources
ovunque si trovino.
Questa è la soluzione più comune (in tutte le domande duplicate)
# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore
!.gitignore
# Now exclude our type
!*.foo
Il problema con questa soluzione è che smette di tenere traccia dei file appena aggiunti (poiché *
ignora tutti i file). Non voglio continuare a escludere ogni tipo di file. Voglio un comportamento normale in cui se viene aggiunto un nuovo file, lo git status
mostra.
Finalmente ho una soluzione qui . La soluzione è aggiungere un altro .gitignore
file nella Resources
cartella. Funziona correttamente.
Posso ottenere lo stesso risultato con un file ignorato? Trovo un po 'goffo avere molti file ignorati in directory diverse.
Questo è ciò che sto cercando di ottenere:
# Ignore everything under Resources folder, not elsewhere
Resources
# Don't ignore directories, so we can recurse into them
!*Resources/
# Now exclude our type
!*.foo
Ma questo dà l'output opposto. Ignora i *.foo
tipi e tiene traccia di altri file.
DirectoryName1/** DirectoryName1/**/*
per ciascuna di esse. Per prima cosa rimuovere le directory ma è necessario il secondo per rimuovere tutti i tipi di file.