.gitignore exclusión cuando se desconoce el nombre de una carpeta

Esta es mi estructura de carpetas (en el formatting find * Unix)

 Project Project/hi.txt Project/userdata Project/userdata/username Project/userdata/username/info.txt Project/userdata/username/cool Project/userdata/username/cool/foo.txt Project/userdata/username/cool/bar.txt 

¿Cómo puedo usar .gitignore para excluir todo en la carpeta userdata exception de la carpeta cool ? Esta solución no debe depender del username realmente es.

.gitignore admite inclusiones, no solo exclusiones. Una inclusión niega una exclusión. La advertencia es que si excluyes una carpeta, nunca testing las inclusiones con el contenido de la carpeta. Así que querrás configurar tu .gitignore para que se vea como (y estoy asumiendo que está dentro de Project/ ya)

 /userdata/* !/userdata/*/ /userdata/*/* !/userdata/*/cool/ 

Esto dice "ignore todo en /userdata , pero no ignore las carpetas, pero ignore todo dentro de las carpetas anidadas, pero no ignore una carpeta doblemente anidada llamada cool ".