1477 Stimmen

Ignorieren Sie ein "bin"-Verzeichnis in einem Git-Projekt.

Ich habe eine Verzeichnisstruktur wie diese:

.git/
.gitignore
main/
  ...
tools/
  ...
...

In main und tools und jedem anderen Verzeichnis auf jeder Ebene kann es ein 'bin'-Verzeichnis geben, das ich ignorieren möchte (und ich möchte auch alles darunter ignorieren). Ich habe jede dieser Muster in .gitignore ausprobiert, aber keines funktioniert:

/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #und die anderen auch mit nur * am Ende

Kann mir jemand helfen? Das erste Muster (das meiner Meinung nach funktionieren sollte) funktioniert nur, wenn ich dies tue:

/main/**/bin/**/*

Aber ich möchte keinen Eintrag für jedes Top-Level-Verzeichnis haben und ich möchte nicht jedes Mal .gitignore ändern müssen, wenn ich ein neues hinzufüge. Es gibt auch Dateien und Verzeichnisse, die den Teil "bin" in ihren Namen haben, die ich behalten möchte.

Dies ist auf Windows mit dem neuesten msysgit.

22 Stimmen

Vermutlich wird es für jemanden hilfreich sein: Wenn Sie nur wenige Repositories haben und jedes dieselbe .gitignore-Datei hat, können Sie sie an einem "gemeinsamen" Ort platzieren und dann > git config --global core.excludesfile ~/.gitignore_global ausführen. Der letzte Parameter ist der Pfad zum gemeinsamen Ort. P.S. Ich bin neu bei git und bin mir nicht sicher, ob das eine 'Best Practice'-Empfehlung ist. Bitte lassen Sie mich wissen, falls Sie das nicht tun möchten. Vielen Dank.

0 Stimmen

Die **-Syntax scheint jetzt (März 2013, git 1.8.2) offiziell dokumentiert zu sein: siehe meine Antwort unten

3 Stimmen

Wenn jemand die aktuellste Version der tatsächlichen Handbuchseite lesen möchte, siehe gitignore(5) Handbuchseite.

45voto

Bravo Yeung Punkte 6738

Schritt 1: Fügen Sie den folgenden Inhalt zur Datei .gitignore hinzu.

# Benutzerspezifische Dateien
*.suo
*.user
*.userosscache
*.sln.docstates

# Build-Ergebnisse
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/

# Visual Studio 2015 Zwischenspeicher-/Optionenverzeichnis
.vs/

Schritt 2: Stellen Sie sicher, dass die Änderung wirksam wird

Wenn das Problem weiterhin besteht, liegt das daran, dass die Einstellungen in .gitignore nur Dateien ignorieren können, die ursprünglich nicht verfolgt wurden. Wenn einige Dateien bereits im Versionskontrollsystem enthalten sind, ist die Änderung von .gitignore ungültig. Um dieses Problem vollständig zu lösen, müssen Sie Git Bash oder die Package Manager Console (siehe Screenshot unten) öffnen und die folgenden Befehle im Stammordner des Repositorys ausführen.

git rm -r --cached .
git add .
git commit -m "Update .gitignore"

PM-Konsole Dann wird das Problem vollständig gelöst sein.

37voto

Cory Punkte 850

Ich habe hier nichts dazu gesehen, aber es scheint, dass dies auf die Groß- und Kleinschreibung ankommt. Sobald ich zu /Bin geändert habe, wurden die Dateien wie erwartet ignoriert.

3 Stimmen

Dies ist keine Antwort auf die ursprüngliche Frage, die explizit über bin und nicht über Bin ging.

57 Stimmen

Obwohl es keine direkte Antwort ist, trägt sie zur Vollständigkeit für andere bei, die nach dem gleichen Thema suchen (wie ich gerade jetzt).

27voto

Jaider Punkte 13198

[Bb]in wird das Problem lösen, aber... Hier ist eine umfangreichere Liste von Dingen, die Sie ignorieren sollten (Beispielliste von GitExtension):

#Ignore Thumbnails erstellt von Windows
Thumbs.db
#Ignorieren von Dateien, die von Visual Studio erstellt wurden
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.sbr
obj/
[Rr]elease*/
_ReSharper*/

3 Stimmen

Hinweis: Dinge wie diese sollten in Ihrem GLOBAL gitignore sein (normalerweise in Ihrem Home-Verzeichnis). Das Projekt gitignore sollte nur Dinge ignorieren, die spezifisch für Ihr Projekt sind (z. B. .o-Dateien für eine C-App).

20voto

Jochen van Wylick Punkte 5065

Wenn Sie auf der Suche nach einer großartigen globalen .gitignore-Datei für jede Visual Studio (.NET) Lösung sind - empfehle ich Ihnen, diese zu verwenden: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Nach meinem Wissensstand enthält sie die umfassendste .gitignore-Datei für .NET-Projekte.

5 Stimmen

Dies beantwortet die Frage nicht wirklich, aber es ist genau das, wonach ich gesucht habe.

18voto

AnthonyC Punkte 1660

Wörtlich keine der Antworten hat tatsächlich für mich funktioniert; die einzige, die für mich funktioniert hat, war (auf Linux):

**/bin
(ja, ohne das / am Ende)

git Version 2.18.0

1 Stimmen

Hat das auch alle Ordner mit dem Namen bin in den Unterverzeichnissen ignoriert?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X