¿Cómo ignoro todo excepto un par de files en el directory de nivel superior y todo en algunos directorys con .gitignore

Quiero ignorar todo excepto un par de files en el directory de nivel superior y todo en algunos directorys con .gitignore

Mi nivel superior .gitignore es:

*
! / app /
! gbase.php
! list-secret-prices.php

El problema es que tengo que poner un .gitignore con una input de:
! *

en cada uno de los subdirectorys que quiero include para que funcione. No quiero tener que poner un .gitignore en todos los directorys que quiero include. Quiero manejar todo en el nivel superior .gitignore.

En su caso, lo siguiente podría ser más apropiado:

/* !app/ !gbase.php !list-secret-prices.php 

La primera línea ignora todos los directorys y files de nivel superior . Git también ignorará todo lo que esté dentro de los directorys ignorados, incluso si no está explícitamente especificado.

La segunda línea desactive el directory de la app . También hará que git encuentre todos sus files y subdirectorys (recursivamente), porque nunca le dijimos a git que ignore nada debajo del nivel superior.

Realizo exclusiones globales en mi file gitconfig ($ HOME / .gitconfig)

[core] excludesfile = /Users/meself/.gitignore

Y luego escribo mis patrones en ~ / .gitignore.

Ayudaría esto?