Wie kann ich bin- und obj-Ordner aus dem Git-Repository ignorieren?

109

Ich möchte bin- und obj-Ordner aus meinem Git-Repository ignorieren. Wie ich herausgefunden habe, gibt es in .gitignore keine einfache Möglichkeit, dies zu tun. Gibt es einen anderen Weg? Verwenden Sie eine saubere Lösung in Visual Studio?

chester89
quelle
Es funktioniert OK für mich - ich füge die Wörter 'bin' und 'obj' als separate Zeilen in meine .gitignore-Datei ein
Tim Robinson
1
Und wenn die Lösung aus vielen Projekten besteht, nicht nur aus einem?
Chester89
Können Sie genau posten, was Sie versuchen und was nicht funktioniert? objund binin einer obersten Ebene sollte .gitignore alles ignorieren, was aufgerufen wird, objoder binauf allen unteren Ebenen.
CB Bailey
2
Ich verstehe, dass der Inhalt von .gitignore in jedem Unterverzeichnis gilt, sodass einfache 'bin' und 'obj' überall funktionieren. Werde meinen .gitignore in einer Antwort posten.
Tim Robinson

Antworten:

164

Ich bin mir nicht sicher, warum das bei Ihnen nicht funktioniert. Falls es hilft, ist hier eine typische Gitignore-Datei aus einem meiner Visual Studio / Git-Projekte:

*.suo
*.user
_ReSharper.*
bin
obj
packages
Tim Robinson
quelle
4
Ich füge auch hinzu, packageswie Sie sie einfach von NuGet
Michal Ciechan
1
Es funktioniert nicht, wenn Sie zuerst alle Dateien festschreiben und dann die Gitignore-Datei zu Ihrem Repo hinzufügen und festschreiben. Neu ignorierte Dateien werden weiterhin als geändert angezeigt (wenn Sie beispielsweise neu erstellen).
vlad2135
7
Ich habe kürzlich die vorgeschlagene .gitignore-Datei verwendet, die hier zu finden ist: github.com/github/gitignore/blob/master/VisualStudio.gitignore mit großem Erfolg.
BigTFromAZ
1
@BigTFromAZ Sie sollten hinzufügen, dass es als Antwort viel besser ist als die akzeptierte!
Avrohom Yisroel
60

Wenn Sie einfach einen Eintrag in gitignore vornehmen, werden Dateien möglicherweise nicht ignoriert. Möglicherweise müssen Sie sie festschreiben. Ich habe die folgende Methode angewendet und für mich gearbeitet

git rm -r --cached .

git add .

dann

git commit -am "Remove ignored files"

Dies ignoriert jedoch meinen Skriptordner, den ich später in das Repository aufgenommen habe.

Arvind Krmar
quelle
Es funktioniert OK. Aber Vscode konnte den geänderten Code nicht finden. Ich habe selbst etwas geändert und es zum Ursprungsmeister geschoben. Dann hat es funktioniert. :)
Dentrax
Ich habe eine Lösung mit vielen Projekten und aus irgendeinem Grund fügt der Git hinzu. nie abgeschlossen.
Chucky
Great Arvind!, Ein neuer Entwickler, hat alle bin / und obj / in unserem Arbeitszweig zusammengeführt (Richtlinien überspringen ... ich weiß nicht wie!) Und auf diese Weise alle diese Dateien aus dem Repo entfernt.
Equintas
Neuling mich (zumindest zu git), ich habe mir das angetan. Ich hätte nie gedacht, rm und dann wieder hinzuzufügen, weil ich nicht verstanden habe, dass git rm nur die Elemente aus dem Index löscht und nicht die Festplatte. Wenn ich das richtig verstehe, haben Ihre ersten beiden Befehle den Index neu erstellt, indem Sie alles aus dem Index gelöscht und alles wieder hinzugefügt haben, indem Sie die .gitignore-Filter angewendet haben. Dann macht das Commit es so im Repository. Sehr schlau.
BigTFromAZ
Toll! Das hat bei mir sehr gut funktioniert. alle .vs, obj, bin und andere ignorierte Dateien.
Stanley Okpala Nwosa
9

Wenn Sie Visual Studio verwenden, gibt es eine einfache Möglichkeit, dies zu tun.

  1. Öffnen Sie den Team Explorer
  2. Klicken Sie auf Einstellungen
  3. Repository-Einstellungen
  4. Klicken Sie im Abschnitt Ignorieren & Attributdatei neben Hinzufügen ignorieren auf Hinzufügen.

Es wird eine Standard-Gitignore-Datei erstellt, die die meisten gängigen Ordner und Dateien ignoriert, die von Framework / Sprache verwendet werden.

Geben Sie hier die Bildbeschreibung ein

Nilay
quelle
3
  • Suchen Sie die Ordner binund objim Windows Explorer
  • Klicken Sie mit der rechten Maustaste auf TortoiseGit> Löschen und hinzufügen, um die Liste zu ignorieren> bin
  • Klicken Sie mit der rechten Maustaste auf TortoiseGit> Löschen und hinzufügen, um die Liste zu ignorieren> obj
Verweigert Wessels
quelle
1
Es funktioniert perfekt. danke @Denys Wessels
Biswajit Panday
2

Wenn Sie bin und obj in ALLEN Ihren Projekten ignorieren möchten, können Sie (von gitignore man page ) verwenden

Muster, die aus der von der Konfigurationsvariablen core.excludesfile angegebenen Datei gelesen werden.

core.excludesfile kann in einer Konfigurationsdatei festgelegt werden, die unter Unix ~ / .gitconfig ist - ich weiß nicht, wo es sich unter Windows befindet

mmmmmm
quelle
Gute Infos, aber er meinte alle seine Visual Studio-Projekte in dieser Lösung, nicht ALLE Projekte auf dem Computer.
AhHatem
2
Obwohl er höchstwahrscheinlich nie daran interessiert sein wird, die Ordner binund in JEDER objLösung festzuschreiben . :)
MEMark
1

Wenn Sie die Ordner bin und obj zuvor festgeschrieben haben, werden sie durch Hinzufügen zu .gitignore nicht automatisch gelöscht. Sie müssen beispielsweise das Löschen dieser Ordner festschreiben git rm -rf objoder git rm -rf yourProject/obj dann das Löschen festschreiben

Raphael Pinel
quelle
0

Wenn Sie den Quellbaum durchgehen und die ignorierten Dateien immer noch nicht eingehen, gehen Sie zu tools -> option-> Git und wählen Sie dann den Speicherort des Gitignore aus Geben Sie hier die Bildbeschreibung ein

makdu
quelle
0

In meinem Fall wurden die Ordner bin und obj unter dem Ordner Project aus der Root-Datei .gitignore verschachtelt, sodass ich sie wie folgt hinzufügen musste:

[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj

Ersetzen Sie PROJECT_FOLDER_NAME durch Ihren Projektordnernamen

pk_code
quelle