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 unten3 Stimmen
Wenn jemand die aktuellste Version der tatsächlichen Handbuchseite lesen möchte, siehe gitignore(5) Handbuchseite.
0 Stimmen
Freundlichere Option, wenn Sie es Leid sind, Essays für eine Zeile Informationen zu lesen atlassian.com/git/tutorials/saving-changes/…
0 Stimmen
Möglicherweise ist es erwähnenswert, dass es beim Erstellen einer globalen Ignore-Datei sinnvoll ist, sie
~/.cvsignore
zu nennen. Andere Versionskontrollsysteme verwenden diesen Namen, was sie noch "globaler" macht.