¿Por qué Git no reconoce mis exclusiones de .gitignore?

Soy bastante nuevo para Git e bash entender cómo funciona y por qué. Tengo un proyecto web en el que estoy trabajando y tengo un file .gitignore que tiene la siguiente línea:

 www/* 

Ahora, necesito agregar solo la carpeta www a mi repository, así que agregué solo un file .gitignore vacío y actualicé mi file principal .gitignore así:

 !www/.gitignore www/* 

Excepto, ahora cuando hago el git status , no aparece nada, como es necesario agregar. Para agregarlo a la puesta en escena, tengo que hacer que git add www/.gitignore -f .

¿Por qué Git no reconoce automáticamente la exclusión y agrega el file cuando hago git add * ? ¡Gracias!

El order importa Ambas reglas coinciden con el mismo file, por lo que la última gana, y el file se ignora. ¡Tu anterior ! es anulado por su segunda regla.

Tienes que poner la exclusión en segundo lugar:

 www/* !www/.gitignore 

Intente eliminar todo lo relacionado con el directory www desde su .gitignore raíz, luego haga los contenidos de www/.gitignore :

 * !.gitignore 

Así es como mi repo está configurado actualmente y no he tenido problemas.