2013-01-12 17 views
6

ho provato questo file .gitignore:Git: non ignorare un -directory- con un punto in esso

* 
!mydirectory.ext 
!.gitignore 

Ma non funziona, tutto tranne il gitignore viene ignorato.

cercato anche:

!\mydirectory\.ext 

La directory ha bisogno di una proroga perché la sua un plugin per un app.

Eventuali soluzioni alternative?

+0

Quindi, vuoi veramente ignorare _everything_ tranne quella directory? – fge

risposta

2

Quelli tipo di whitelist non sono facili possibile in git.

Una volta ignorata una directory, git non cercherà al suo interno e quindi non controllerà le eccezioni all'interno di questa directory.

L'unico modo per aggirare questo è con lunghe inclusione/esclusione di cascate, che sono davvero brutte.

Il modo migliore è ripensare al problema e cercare di risolverlo senza tali eccezioni generali, ad esempio ignorando esplicitamente tutto ciò che si è sicuri di non desiderare.

7

ref

* 
!/mydirectory.ext/ 
!/mydirectory.ext/* 
!/mydirectory/.ext/ 
!/mydirectory/.ext/* 
!.gitignore 

o

* 
# ignore all 
!/.*/ 
# but not directories which names starting with a dot 
!/.*/* 
# and all its contents 
/.*/*/ 
# but ignore other directories (which names not starting with a dot) 
# which results also not tracking its files underneath 
!/.*/.*/ 
# but not to subdirectories (which names starts with a dot) 
!/.*/.*/* 
# and its contents 


!/*.*/ 
# don't ignore directories which names has a dot in it 
!/*.*/* 
# and its contents 
# extend it like with /.*/ 
!.gitignore 

ecc

Problemi correlati