"Git add * .js" no agregó los files en los subdirectorys

Estaba tratando de hacer algunos cambios. git add para agregar cualquier nuevo file javascript que pudiera haber creado usando el comodín *.js . Luego, realicé cambios y presioné a Github:

 git add * .js
 git commit -m "cosas"
 git push github master

Cuando revisé github, todos los files que había estado editando estaban en blanco. Estaban allí, solo vacíos.

Luego intenté comprometerme nuevamente, pero GIT dijo que todo estaba actualizado.

Luego volví y me di count de que después de que git commit -m "stuff" , GIT mostró un post que decía que muchos de mis files ".js" no se habían creado aunque los acababa de agregar usando el comodín: git add *.js . Este es el post que se mostró cuando intenté comprometerme.

 # En la twig maestro
 # Cambios no escalonados para commit:
 # (use "git add / rm ..." para actualizar lo que se comprometerá)
 # (use "git checkout - ..." para descartar cambios en el directory de trabajo)
 #
 # modified: src / static / directory1 / js / module1 / file1.js
 # modified: src / static / directory1 / js / module1 / file2.js
 # modified: src / static / directory1 / js / module2 / file1.js

Para arreglar esto tuve que bajar algunos directorys cuando hago mi git add :

 git add src / static / directory1 / *. js

Esto pareció funcionar, porque los files estaban allí después de que me comprometí de nuevo y luego pasé a github:

 git commit -m "cosas"
 git push github master

¿Qué estaba pasando aquí, por qué tenía que navegar por algunos directorys para que funcionara el comodín?

¡Gracias!

Una alternativa es usar el command find:

 find . -name '*js' -exec git add {} \; 

Ejecutar eso sin el ejecutivo le dará la list de files en los que está trabajando; por lo tanto, es fácil ajustar este command a su gusto.

Tienes que usar

 git add '*.js' 

Tienes que usar comillas para que git reciba el comodín antes de que lo haga tu caparazón. Si no tiene citas, el intérprete de commands solo realizará la búsqueda con comodines dentro de su directory actual.

a pesar de que los acababa de agregar usando el comodín: git add *.js

La expansión del comodín de Shell no se repite en los subdirectorys. El comodín se expande antes de que Git tenga la oportunidad de verlo.

Si usas git add '*.js' , entonces Git verá el comodín y lo comparará con todos los nombres de ruta que terminan en .js . Debido a que * está en la position inicial, esto agregará recursivamente todos los files .js , incluidos los subdirectorys.