ignorant tout répertoire 'bin' sur un projet git
J'ai une structure de répertoire comme ceci:
.git/
.gitignore
main/
...
tools/
...
...
À l'intérieur et des outils, et tout autre répertoire, à tout niveau, il peut y avoir un répertoire 'bin', que je veux ignorer (et je veux de tout ignorer, en vertu de trop). J'ai essayé de chacun de ces modèles dans .gitignore mais aucune de ces travaux:
/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too
Quelqu'un peut-il m'aider? Le premier modèle (celui que je pense, devrait être de travail) fonctionne très bien si je fais ceci:
/main/**/bin/**/*
Mais je ne veux pas avoir une entrée pour chaque répertoire de plus haut niveau et je ne veux pas avoir à les modifier .gitignore à chaque fois que j'en ajouter un nouveau.
C'est sur Windows à l'aide de la dernière msysgit.
EDIT: une chose de plus, il y a des fichiers et des répertoires de la sous-chaîne " bin " dans leurs noms, je ne veux pas de ceux qui doivent être ignorés 🙂
- Probablement que quelqu'un va trouver utiles: si vous avez peu de référentiels et chacun a le même .gitignore fichier, vous pouvez le mettre en "commun", de l'emplacement et de lancement > git config --global core.excludesfile ~/.gitignore_global Le dernier paramètre est le chemin vers le lieu commun. P. S. je suis nouveau sur git et vous ne savez pas si c'est la "meilleure pratique" recommandation. Donc, s'il vous plaît laissez-moi savoir si vous voulez pas le faire. Je vous remercie.
- Le
**
syntaxe semble maintenant (Mars 2013, git 1.8.2) a officiellement documentés: voir ma réponse ci-dessous - Si quelqu'un veut le lire le plus up-to-date de la version de la véritable page de manuel, reportez-vous à gitignore(5) de la Page de Manuel.
Vous devez vous connecter pour publier un commentaire.
Avant la version 1.8.2,
**
n'ont pas de signification particulière dans le.gitignore
. Comme d'1.8.2 git prend en charge**
à dire zéro, un ou plusieurs sous-répertoires (voir notes de version).La façon d'ignorer tous les répertoires appelés bin n'importe où en dessous du niveau actuel dans une arborescence de répertoire est avec un
.gitignore
fichier avec le motif:Dans le
man
page, il y a un exemple d'ignorer un répertoire appeléfoo
à l'aide d'un schéma analogue.Edit:
Si vous avez déjà des bin dossiers dans votre git indice qui vous ne souhaitez plus suivre, alors vous devez les supprimer de manière explicite. Git de ne pas arrêter le suivi de chemins qui sont déjà en cours suivi juste parce qu'ils correspondent désormais à une nouvelle
.gitignore
modèle. Exécuter un dossier supprimer (rm) à partir de l'index uniquement (--cached) recursivelly (-r). Exemple de ligne de commande pour l'utilisateur root bin:**
dans.gitignore
fichiers (source: 1.8.2 changelog)bin
même debin/
?bin
ignore les fichiers nommés bin, tandis quebin/
est pour les répertoires nommés binbin
etbin/
à la fois le travail d'un répertoire.git rm build/ -r
si vous avez déjà commis le répertoire build.La
.gitignore
de votre rêve semble être:sur le niveau supérieur.
Je pense qu'il vaut la peine de mentionner pour git débutants:
Donc, si vous voulez ajouter à ignorer certains répertoires dans votre référentiel local (qui existent déjà) après le montage .gitignore vous souhaitez l'exécuter sur votre root dir
Essentiellement "actualiser" de votre région repo et unstage les fichiers ignorés.
Voir:
http://git-scm.com/docs/git-rm,
https://help.github.com/articles/ignoring-files/
git add -A
sur mon commet, puis-je l'utiliser à la place? et puis-je remplacer le point avec -Un sur la première ligne de trop?La
**
n'a jamais bien fonctionné par le passé, mais depuis git 1.8.2 (8 Mars 2013), il semble être mentionnée explicitement et de prise en charge:Dans votre cas, cela signifie que cette ligne pourrait désormais être pris en charge:
correspond à la fois supérieure et inférieure de cas
[B]in/
être le seul majusculesBin
dossier de l'ignorer et de laisserbin
commit git?[B]in/
permettra à la fois de s'engagerBin
etbin
.Bin/
!bin/
Je ne le vois pas mentionné ici, mais cela semble être sensible à la casse. Une fois que j'ai changé de /Bin les fichiers ont été ignorés comme prévu.
bin
, pasBin
.[Bb]in
permettra de résoudre le problème, mais...Voici une liste plus complète des choses que vous devriez ignorer (exemple de liste par GitExtension):
Si vous êtes à la recherche pour un grand
.gitignore
fichier pour toute Visual Studio ( .NET ) la solution que je vous recommande d'utiliser celui-ci: https://github.com/github/gitignore/blob/master/VisualStudio.gitignoreAutant que je sache, il a le plus complet
.gitignore
pour .Projets NET.Étape 1: Ajouter le contenu suivant dans le fichier .gitignore.
HTML:
Étape 2: assurez-vous de prendre effet
Si le problème existe encore, c'est parce que les paramètres dans .gitignore ne peut ignorer les fichiers qui ont été à l'origine pas suivis. Si certains fichiers ont déjà été inclus dans le système de contrôle de version, puis de modifier .gitignore est pas valide.
Pour résoudre ce problème, vous devez ouvrir Git Bash ou le Gestionnaire de Package Console (voir capture d'écran ci-dessous) pour exécuter les commandes suivantes dans le dossier racine du dépôt.
HTML:
Ensuite, le problème est complètement résolu.
Comme un avis;
Si vous pensez
.gitignore
ne fonctionne pas d'une manière (donc ajoutéfoo/*
dossier, maisgit status
montre encore que le contenu d'un dossier(s), tel que modifié ou quelque chose comme cela), alors vous pouvez utiliser cette commande;git checkout -- foo/*
pour 2.13.3 et au-delà,l'écriture bin dans votre .gitignore fichier doit ignorer la corbeille et tous ses sous-répertoires et fichiers
Littéralement aucune réponse effectivement travaillé pour moi, le seul qui a fonctionné pour moi a été (sur Linux):
Si le motif à l'intérieur de
.gitignore
se termine par une barre oblique/
, il suffira de trouver une correspondance avec un répertoire.En d'autres termes,
bin/
va correspondre à un répertoirebin
et les chemins d'accès en dessous, mais ne peut pas correspondre à un fichier ou un lien symboliquebin
.Si le motif de la ne contient pas de barre oblique, comme dans
bin
Git traite comme un shell glob modèle (gourmand). Alors le mieux serait d'utiliser de simples/bin
.bin
ne serait pas la meilleure solution pour ce problème particulier.L'ajout d' **/bin/à la .gitignore fichier a fait l'affaire pour moi (Remarque: le dossier bin n'a pas été ajoutés à l'index).