“git add” à l'aide de caractères génériques ne fonctionne pas comme je l'espérais - je dois cd dans des répertoires spécifiques?

Quand j'ai essayer de faire une base git add *.erb (ou tout simple des expressions génériques) git est de ne pas reconnaître le (les). Comme une note, je ne l'ai jamais fait avant, donc je suis sûr que c'est une erreur de débutant, mais j'ai trouvé aucune aide chez d'autres postes ou de mon école des anciens de la liste de diffusion de sorte que je pensais que ce poste peut être approprié.

Pour (un), par exemple, git status me donne:

#   modified:   config/routes.rb
#   modified:   spec/models/question_spec.rb

Je voulais seulement en scène le fichier de routes, j'ai donc essayé git add *s.rb et pas de dés. Je suis dans la racine de l'application...je dois être dans le répertoire qui contient le fichier(s) je suis en train d'appliquer l'expression générique pour? Ce serait douloureux, mais...en fait...ça a fonctionné.

Espère que ce n'est pas un post, mais est-il un moyen plus facile d'utiliser des caractères génériques où vous n'avez pas de cd dans le répertoire spécifique?

  • Lors de l'utilisation de ma coquille (zsh), j' git add *.cpp<TAB>, et le shell se termine le générique pour le nom de fichier complet. git add **/*.cpp<TAB> n'tous cpp les fichiers sous le répertoire courant. Bash peut avoir quelque chose de similaire.
  • Bash v4 et plus prend en charge ** pour récursive d'expansion (wiki.bash-hackers.org/syntax/expansion/globs), donc si vous utilisez une version suffisamment récente version de bash, git add **/*.rb devrait faire ce que vous voulez.
  • Merci @simont @Michael. Ces deux aboyaient dans le bon arbre. J'ai utilisé git add **/*s.rb et je suis tout bon!
  • J'ai essayé git add */*s.rb ainsi et a été un succès. Le */ agir comme un remplacement pour un répertoire de plus profond, mais **/ désigner récursive infinie répertoires? Si je devais poser une nouvelle question, laissez-moi savoir!
  • C'est correct. */*s.rb correspondra tout se terminant par "s.rb" un répertoire de profondeur (et pas dans le répertoire courant et de la profondeur). De même */*/*s.rb serait tout se terminant par "s.rb" deux répertoires de profondeur, mais nulle part ailleurs (plus ou moins profond).
InformationsquelleAutor RudyOnRails | 2012-08-22