Cómo ignorar git basado en el contenido

¿Es posible ignorar una carpeta completa en function de algunos criterios sobre su contenido? Por ejemplo, quiero ignorar todo en todas las carpetas que contienen al less un file html. ¿Cómo puede hacerse esto? (Como mucho)

No existe tal funcionalidad en Git, y de todos modos no tiene mucho sentido tenerla.

Si tiene algunos files en un directory, puede inspeccionarlos fácilmente para averiguar si hay algún file .html entre ellos. Si hay muchos directorys (con subdirectorys), una simple línea de command puede encontrar los files .html y generar las reglas necesarias para poner en .gitignore .

Si un file .html se crea más tarde en un directory que no se había ignorado previamente, agregar la ruta del directory a .gitignore no es suficiente, también debe eliminar los files rastreados existentes del repository.

Un command simple para get todos los files .html y generar las reglas para poner en .gitignore :

 find . -name '*.html' -exec dirname \{\} \; | sort -u 

Encuentra todos los files .html del directory actual y sus subdirectorys y ejecuta dirname para cada uno de ellos. El resultado de find se canaliza a sort que los ordera y elimina los duplicates ( -u ).

(No probé su salida con Git, podría necesitar pequeños retoques, pero esta es la idea).

No creo que haya una manera directa en git. Sin embargo, podría ejecutar un script (python, etc.) que haga la verificación por usted y luego escriba el gitignore en la carpeta.