Comment pourrais-je ignorer les dossiers bin et obj du référentiel git?

112

Je veux ignorer les dossiers bin et obj de mon référentiel git. Comme je l'ai découvert, il n'y a pas de moyen facile de le faire dans .gitignore. Alors, y a-t-il un autre moyen? Vous utilisez une solution propre dans Visual Studio?

chester89
la source
Cela fonctionne bien pour moi - j'ajoute les mots 'bin' et 'obj' en tant que lignes séparées dans mon fichier .gitignore
Tim Robinson
1
Et si la solution consiste en plusieurs projets, pas un seul?
chester89
Pouvez-vous publier exactement ce que vous essayez et ce qui ne fonctionne pas. objet bindans un niveau supérieur .gitignore devrait ignorer tout ce qui est appelé objou binà tous les niveaux inférieurs.
CB Bailey
2
Je crois comprendre que le contenu .gitignore s'applique dans chaque sous-répertoire, donc «bin» et «obj» fonctionnent partout. Publiera mon .gitignore dans une réponse.
Tim Robinson

Réponses:

165

Je ne sais pas pourquoi cela ne fonctionne pas pour vous. Au cas où cela aiderait, voici un fichier .gitignore typique de l'un de mes projets Visual Studio / git:

*.suo
*.user
_ReSharper.*
bin
obj
packages
Tim Robinson
la source
4
J'ajoute également packagesque vous pouvez facilement les télécharger à nouveau depuis NuGet
Michal Ciechan
1
cela ne fonctionne pas lorsque vous validez tous les fichiers pour la première fois, puis ajoutez le fichier .gitignore à votre dépôt et validez-le. Les fichiers récemment ignorés seront toujours affichés comme modifiés (si vous reconstruisez, par exemple).
vlad2135
7
J'ai récemment utilisé le fichier .gitignore suggéré trouvé ici: github.com/github/gitignore/blob/master/VisualStudio.gitignore avec beaucoup de succès.
BigTFromAZ
1
@BigTFromAZ Vous devriez ajouter que comme réponse, c'est bien mieux que celui accepté!
Avrohom Yisroel
62

Le simple fait de faire une entrée dans gitignore ne peut pas ignorer les fichiers, vous devrez peut-être le valider. J'ai utilisé la méthode suivante et travaillé pour moi

git rm -r --cached .

git add .

puis

git commit -am "Remove ignored files"

Cependant, cela ignore mon dossier de scripts que j'ai inclus plus tard dans le référentiel.

Arvind Krmar
la source
Cela fonctionne bien. Mais Vscode n'a pas pu trouver le code modifié. J'ai changé quelque chose moi-même et je l'ai poussé à devenir maître d'origine. Ensuite, cela a fonctionné. :)
Dentrax
J'ai une solution avec de nombreux projets et pour une raison quelconque, le git add. ne se termine jamais.
Chucky
Great Arvind !, un développeur débutant a fusionné tous les bin / et obj / dans notre branche de travail (en ignorant les politiques ... je ne sais pas comment!) Et c'était le moyen de supprimer tous ces fichiers du dépôt.
équintas
Débutant moi (au moins pour git), je me suis fait ça. Je n'ai jamais pensé à rm puis à rajouter car je ne comprenais pas que git rm ne supprime que les éléments de l'index et non du disque. Donc, si je comprends bien, vos deux premières commandes ont reconstruit l'index en supprimant tout de l'index et en ajoutant tout, en appliquant les filtres .gitignore. Ensuite, le commit le fait dans le référentiel. Très intelligent.
BigTFromAZ
Génial! Cela a parfaitement bien fonctionné pour moi. tous les fichiers .vs, obj, bin et autres fichiers ignorés.
Stanley Okpala Nwosa le
9

Si vous utilisez Visual Studio, il existe un moyen simple de le faire.

  1. Ouvrez Team Explorer
  2. Cliquez sur les paramètres
  3. Paramètres du référentiel
  4. Dans la section Ignorer et fichier d'attribut, cliquez sur Ajouter à côté de Ignorer le fichier.

Il créera un fichier .gitignore par défaut, qui ignorera la plupart des dossiers et fichiers courants qui seront utilisés par le framework / langage.

entrez la description de l'image ici

Nilay
la source
3
  • Localisez les dossiers binet objdans l'Explorateur Windows
  • Faites un clic droit sur TortoiseGit> Supprimer et ajouter à la liste des ignorés> bin
  • Faites un clic droit sur TortoiseGit> Supprimer et ajoutez à la liste des ignorés> obj
Denys Wessels
la source
1
Cela fonctionne parfaitement. merci @Denys Wessels
Biswajit Panday
2

Si vous voulez ignorer bin et obj dans TOUS vos projets, vous pouvez utiliser (à partir de la page de manuel gitignore )

Modèles lus à partir du fichier spécifié par la variable de configuration core.excludesfile.

core.excludesfile peut être défini dans un fichier de configuration qui est ~ / .gitconfig sous Unix - je ne sais pas où il se trouve sous Windows

mmmmmm
la source
Bonne info, mais il voulait dire tous ses projets Visual Studio dans cette solution pas TOUS les projets sur la machine.
AhHatem
2
Bien que très probablement, il ne sera jamais intéressé par la validation des dossiers binet objdans N'IMPORTE QUELLE solution. :)
MEMark
1

Si vous avez précédemment validé les dossiers bin et obj, les ajouter à .gitignore ne les supprimera pas automatiquement. Vous devez valider la suppression de ces dossiers avec par exemple git rm -rf objou git rm -rf yourProject/obj valider la suppression

Raphaël Pinel
la source
0

Si vous essayez à travers l'arborescence des sources et que les fichiers ignorés n'arrivent toujours pas, allez dans outils -> option-> Git, puis sélectionnez l'emplacement du .gitignore entrez la description de l'image ici

makdu
la source
0

Dans mon cas, les dossiers bin et obj étaient imbriqués dans le dossier Project à partir du fichier racine .gitignore, j'ai donc dû l'ajouter comme ci-dessous:

[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj

Remplacez PROJECT_FOLDER_NAME par le nom du dossier de votre projet

pk_code
la source