Git ignore et Maven targets

quiconque 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" dans un projet maven avec un certain nombre de sous-modules. Je sais que je peux explicitement exclure chacun d'eux dans un niveau supérieur .gitignore, 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?

93
demandé sur Sergey Glotov 2009-06-14 03:46:51

3 réponses

il est possible d'utiliser des motifs dans un fichier .gitignore . Voir le gitignore page de manuel de . Le modèle */target/* devrait ignorer n'importe quel répertoire nommé cible et n'importe quoi sous lui. Ou vous pouvez essayer */target/** pour ignorer tout sous la cible.

75
répondu baudtack 2012-06-08 03:09:52

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

.classpath
.project
.settings/
target/

il s'agit d'un projet maven multi-modules. Tous les sous-modules sont importés en tant que projets eclipse individuels en utilisant m2eclipse. Je n'ai plus de fichiers .gitignore . En effet, si vous regardez dans la gitignore man page :

les Habitudes de lecture à partir d'un .gitignore fichier dans le même répertoire que le chemin", 151950920" ou dans n'importe quel répertoire parent ...

donc ça devrait marcher pour vous.

202
répondu Dominic Mitchell 2012-03-14 02:43:09

comme déjà souligné dans les commentaires par Abhijeet vous pouvez juste ajouter la ligne comme:

/target/**

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

alors si vous voulez vous débarrasser de ce dossier target dans votre fichier repo distant, vous devrez d'abord supprimer manuellement ce dossier de votre dépôt local, puis le propager. C'est parce que git va vous montrer le contenu d'un dossier cible tel que modifié au début.

3
répondu Tomasz Mularczyk 2016-11-10 11:19:08