Desconecte todos los files que comienzan con cierto text en el nombre / título del file

Intento descubrir todos los files en mi repository Git cuyos nombres de file comienzan con 'formulario'. Por ejemplo: 'form1.cfm, form2.cfm, form3.cfm,' que están en mi repository en varios niveles diferentes de directorys. Este siguiente command ha funcionado para descuidar directorys completos, pero no está funcionando en lo que estoy haciendo ahora.

git rm –cached -r * form.cfm

Cuando ejecuto ese command, simplemente elimina / desenmascara la primera forma * .cfm en la que se encuentra, no TODAS las coincidencias en todo el sistema de files.

¿Algún consejo sobre cómo puedo ignorar el file que comienza con una cadena y que se encuentra en todo el repository? ¡Gracias!

Puedes probar algo como:

 git rm --cached `find . -iname "*form*.cfm"` 

El find devolverá todo el form*.cfm en su repository, luego solo emitirá un git rm --cached para eliminar los resultados de find from git index.

Lo probé con hasta 4 niveles de carpetas anidadas:

 $ tree . . ├── form1.cfm └── subfolder1 ├── form2.cfm └── subfolder2 ├── form3.cfm └── subfloder3 └── form4.cfm 

Acabo de crear dos files en la raíz de mi repository llamados form1.cfm y form2.cfm , y los form2.cfm al repository. Entonces corrí:

 git rm --cached -r form*.cfm 

y el resultado dice que tiene ambos files.

Sin embargo, intenté un segundo bash, esta vez también creando un form3.cfm en un subdirectory, y solo eliminó form1.cfm y form2.cfm . Para eliminar este file también tuve que ejecutar:

 git rm --cached -r */form*.cfm