J'ai beaucoup de projets dans ma solution .Net. Je voudrais exclure tous les dossiers "bin / Debug" et "bin / Release" (et leur contenu), mais inclure toujours le dossier "bin" lui-même et toutes les DLL qu'il contient.
.gitignore avec "bin /" ignore les dossiers "Debug" et "Release", mais aussi toutes les DLL contenues dans le dossier "bin".
"bin / Debug" ou "bin / Release" dans le fichier .gitignore n'exclut pas les répertoires, sauf si je qualifie complètement le modèle d'ignorance comme "Solution / Project / bin / Debug" - ce que je ne veux pas faire comme je devra inclure ce modèle complet pour chaque projet dans ma solution, ainsi que l'ajouter pour tout nouveau projet ajouté.
Aucune suggestion?
Réponses:
Avez-vous essayé les caractères génériques?
Avec la version 1.8.2 de git, vous pouvez également utiliser le
**
caractère générique pour faire correspondre n'importe quel niveau de sous-répertoires:la source
**
. Devrait être corrigé maintenant. linkVous pouvez utiliser .gitignore au niveau supérieur pour ignorer tous les répertoires du projet portant le même nom. Par exemple:
Cela devrait être mis à jour immédiatement afin qu'il soit visible lorsque vous faites le statut git. Assurez-vous que ces répertoires ne sont pas déjà ajoutés à git, car cela remplacera les ignorés.
la source
$GIT_DIR/.git/info/exclude
fichier OPs .git rm -rf DirectoryName/
La question ne demande pas d'ignorer tous les sous - répertoires, mais je ne pouvais pas trouver nulle part de réponse, alors je vais le poster:
*/*
.la source
git add
à ignorer un répertoire et tous les fichiers dans tous les sous-répertoires de ce répertoire. Je l' ai essayédirname/
,dirname/*
,dirname/**
,dirname/*/*
, même en désespoir de causedirname/*/*/*
,dirname/*/*/*/*
,dirname/*/*/*/*/*
.*/*
ignore tous les sous-répertoires mais pas les fichiers du répertoire courant. Ignorer un sous-répertoire spécifique est une utilisation normale de gitignore.dirname
,dirname/
etdirname/*
tout fonctionne pour moi. Quelque chose dans ce répertoire a-t-il déjà été validé?.git
répertoire entier entre les tentatives,git init
puisgit add --all .
(j'ai également essayé sans--all
), en utilisant 1.9.4.msysgit.1. Chaque sous-répertoire non vide sous mon répertoire nommé est ajouté à l'index (vérifié dans TortoiseGit etgit status
). Il n'y a pas de ligne de.gitignore
départ pertinente!
mais il doit y avoir un conflit. Résolu pour l'instant en supprimant les dossiers pendantadd
. Je suppose que c'est quelque chose qui nécessitera un peu plus de fouilles pour fournir les informations nécessaires au diagnostic. Merci de m'avoir rassuré sur le fait que je ne comprends pas mal la syntaxe.Toutes les réponses ci-dessus sont valides, mais je ne pense pas que ce qui est mentionné est qu'une fois que vous ajoutez un fichier de ce répertoire dans le référentiel, vous ne pouvez pas ignorer le répertoire / sous-répertoire qui contient ce fichier (git ignorera cette directive ).
Pour ignorer les fichiers déjà ajoutés, exécutez
Sinon, vous devrez d'abord supprimer tous les fichiers du répertoire cible du référentiel - puis vous pouvez ignorer ce dossier.
la source
En plus de mettre les entrées correctes dans votre fichier .gitignore, si vous essayez d'ignorer quelque chose déjà ajouté au dépôt, vous devez le faire
git rm -r /path/to/dir
et le valider avant d'ajouter le dir à votre fichier .gitignore. Sinon, la seule chose que git ignorera est votre directive ignore.la source
La seule façon de faire fonctionner cela sur ma machine était de le faire de cette façon:
Remarquez comment vous devez autoriser explicitement le contenu pour chaque niveau que vous souhaitez inclure. Donc, si j'ai des sous-répertoires 5 sous les thèmes, je dois encore le préciser.
Ceci provient du commentaire de @ Yarin ici: https://stackoverflow.com/a/5250314/1696153
Ces sujets étaient utiles:
J'ai aussi essayé
et
**/wp-content/themes/**
ou
/wp-content/themes/**/*
Rien de tout cela n'a fonctionné pour moi non plus. Beaucoup de traces et d'erreurs!
la source
Pour exclure du contenu et des sous-répertoires:
Pour simplement exclure tous les sous-répertoires mais prendre le contenu, ajoutez "/":
la source
Pour ignorer tous les sous-répertoires, vous pouvez simplement utiliser:
Cela fonctionne à partir de la version 1.8.2 de git.
la source
La façon générique d'ignorer tous les sous-dossiers, tout en continuant à suivre les fichiers qui se trouvent dans le
/bin
répertoire serait d'ajouter la ligne suivante au fichier .gitignore de votre projet:Si vous souhaitez ignorer uniquement des sous-dossiers nommés particuliers, vous pouvez faire:
nb. si le
bin
répertoire n'est pas à la racine de votre projet (à côté du fichier .gitignore), alors au lieu de par exemple.bin/*/*
vous pourriez avoir besoinpath/to/bin/*/*
la source