web-dev-qa-db-fra.com

Git Ignore et les cibles Maven

Tout le monde sait s'il est possible d'ignorer toutes les instances d'un répertoire particulier dans une structure de fichier gérée par git.

Je cherche à exclure tous les dossiers "cibles" d'un projet maven avec plusieurs sous-modules. Je sais que je peux explicitement exclure chacun d’eux dans un .gitignore de premier niveau, mais j’aimerais vraiment pouvoir spécifier un modèle comme **/target/* pour qu’il ignore automatiquement l’instance dans les sous-répertoires?

Est-ce possible?

108
sgargan

Il est possible d’utiliser des patterns dans un .gitignore fichier. Voir le page de manuel de gitignore . Le motif */target/* devrait ignorer tous les répertoires nommés cible et tous les répertoires qu’il contient. Ou vous pouvez essayer */target/** pour tout ignorer sous cible.

89
baudtack

Le .gitignore fichier dans le répertoire racine ne s'applique à tous les sous-répertoires. Le mien ressemble à ceci:

.classpath
.project
.settings/
target/

Ceci est dans un projet multi-module Maven. Tous les sous-modules sont importés en tant que projets Eclipse individuels à l'aide de m2Eclipse. Je n'ai plus de .gitignore des dossiers. En effet, si vous regardez dans le page de manuel de gitignore :

Les motifs lus d'un .gitignore fichier dans le même répertoire que le chemin, ou dans n’importe quel répertoire parent

Donc, cela devrait fonctionner pour vous.

210
Dominic Mitchell

Comme déjà signalé dans les commentaires de Abhijeet, vous pouvez simplement ajouter une ligne comme celle-ci:

/target/**

à exclure fichier dans le dossier \.git\info\.

Ensuite, si vous souhaitez vous débarrasser de ce dossier target dans votre référentiel distant, vous devez d'abord supprimer manuellement ce dossier de votre référentiel local, puis valider. C’est parce que git vous montrera le contenu d’un dossier cible modifié.

4
Tomasz Mularczyk

J'ignore toutes les classes résidant dans le dossier cible de git. ajoute la ligne suivante dans le fichier ouvert .gitignore:

/. class

OR

*/cible/**

Cela fonctionne parfaitement pour moi. l'essayer.

1
Rajeev Rathor