Einfaches Problem, nicht ganz so einfache Lösung. Man möchte ganze Verzeichnisse von der Versionierung ausschließen, aber einzelne darin befindliche Dateien sollen dennoch versioniert werden. Dies geht nur über einen kleinen Umweg, da bei genauer Pfadangabe alle untergeordneten Dateien und Verzeichnisse von Git außer Acht gelassen werden. Man muss also eine Hierarchie weiter oben ansetzen und Git über Wildcards mitteilen, was ignoriert werden soll und was nicht.
Dementsprechend setzen wir die Wildcards folgendermaßen ein:
assets/files/*/* !assets/files/*/notignored.txt
Somit werden alle Dateien in allen Unterverzeichnissen von files ignoriert, aber alle notignored.txt verbleiben dennoch im Repository.