shell - para - ignorar carpetas en git
Busque e imprima rápidamente todos los archivos en una carpeta, recursivamente, excluyendo los de `node_modules` y`.git` (1)
Para excluir archivos solo directamente de la carpeta de la búsqueda:
find . -not /( -path ''./.git'' -prune /) -not /( -path ''./node_modules'' -prune /) -type f
Si desea excluir ciertas rutas que están en subcarpetas , puede hacerlo también con * comodín.
Digamos que también tiene node_modules dentro de stuff1 y stuff2 , y además carpetas dist y lib :
find . -not /( -path ''./.git'' -prune /) -not /( -path ''./node_modules'' -prune /) -not /( -path ''./*/node_modules'' -prune /) -not /( -path ''./*/dist'' -prune /) -not /( -path ''./*/lib'' -prune /) -type f
Probado en Windows usando git bash 1.9.5
Sin embargo, parece que no funciona correctamente en Windows cuando se pasa un filtro como -name ''*.js'' . La solución podría ser no usar -name y pipe to grep lugar.
Felicitaciones a @Daniel C. Sobral
Considere la siguiente estructura de carpetas comenzando en alguna carpeta raíz
/root/
/root/.git
/root/node_modules
/root/A/
/root/A/stuff1/
/root/A/stuff2/
/root/A/node_modules/
/root/B/
/root/A/stuff1/
/root/A/stuff2/
/root/B/node_modules/
...
Ahora estoy en /root y me gustaría encontrar todos mis archivos dentro de él. Tengo un pequeño número de mis propios archivos y la gran cantidad de archivos dentro de node_modules y .git .
Por eso, atravesar node_modules y filtrarlo es inaceptable, ya que lleva demasiado tiempo. Quiero que el comando nunca entre en la carpeta node_modules o .git .