Ajout de dossiers profonds dans git

Lors de la programmation en Java, il est courant d'avoir des structures de files aussi profondes que

com/company/project/folder/subfolder 

Donc, lors de l'ajout d'un file, vous devez taper

 git add com/company/project/folder/subfolder/SomeAwesomeClass.java 

Y at-il un moyen plus rapide? comme une sorte de git add-if-matches SomeAwesomeClass.java

Solutions Collecting From Web of "Ajout de dossiers profonds dans git"

Essayez la command suivante:

 git add *AwesomeClass.java 

Mais cela appenda tous les files portant ce nom sous le directory courant ou l'un de ses sous-directorys aussi profond que possible.

Si vous voulez append seulement un file spécifique dans un directory spécifique, vous pouvez essayer:

 git add *subfolder/SomeAwesomeClass.java 

Vous pouvez également essayer ce qui suit pour append tous les files sur un directory spécifique:

 git add *subfolder/* 

Notez qu'il n'y a pas d'espaces avant ou après le symbole astérisque.

J'ai essayé ceux-ci sur Mac OS X avec le même scénario et cela a fonctionné.

Si vous avez l'intention d'append le sous-directory entier, vous pouvez simplement append le directory

 git add com 

Si vous voulez vraiment seulement append cette class, la solution la plus simple est de faire le truc Unix et de composer des commands set. Dans ce cas, la command find est ce qui est vraiment bon pour find des files avec un nom donné. Vous pouvez passer la sortie de find à git dans bash en entourant la command find avec $()

 git add $(find . -name SomeAwesomeClass.java) 

Vous pouvez simplement taper git add com less qu'il n'y ait d'autres files dans la structure du directory que vous ne voulez pas append.

Ok, alors j'ai juste préparé une petite recette. Une fonction bash simple que vous pouvez append à vous .bash_profile

 function add(){ git add $(git status --porcelain | grep "$1" | cut -c 4-) } 

Pour l'utiliser, vous pouvez simplement add something et append tous les files correspondants, donc si vous avez 2 files:

 com/company/project/folder/subfoler/AwesomeClass.java com/company/project/folder/subfoler/subfolder/CoolClass.java 

Tu peux appeler

 add Awesome 

Et il va append le AwesomeClass.java