Jedes Git-Repository braucht eine .gitignore. Sie ist die Klartext-Liste der Pfade, die Git **nicht** verfolgen soll — Build-Artefakte, Dependency-Ordner, IDE-Configs, OS-Müll wie .DS_Store. Ohne sie zieht dein erster Commit versehentlich node_modules/, .env und target/ mit, und das aufzuräumen ist viel nerviger, als die Datei gleich richtig anzulegen.
Jedes Ökosystem ignoriert andere Dinge, und die meisten Projekte spannen mehrere zugleich auf. Eine typische Node-+-TypeScript-App auf macOS mit VS Code braucht schon die Vereinigung aus vier verschiedenen Ignore-Listen. Das aus dem Kopf zu schreiben heißt: coverage/ vergessen, .env durchsickern, ein .idea/ vom JetBrains-Kollegen mit-committen.
Deshalb bündelt dieser Generator kuratierte Templates aus dem kanonischen Projekt github/gitignore — derselben Quelle wie die offiziellen GitHub-Vorschläge — und du kannst sie stapeln. Hak die Boxen an, und das Tool spuckt eine deduplizierte .gitignore aus, die du direkt ins Repo einfügen kannst. Keine Accounts, keine Uploads, läuft komplett im Browser.
Was du beim Bauen lernst
.gitignore-Muster nutzen Glob-Syntax: *.log ignoriert jede Logdatei, build/ ignoriert einen Ordner, !important.log hebt das Ignorieren einer bestimmten Datei trotz Treffer wieder auf.
Muster gelten relativ zum Standort der .gitignore — eine .gitignore in src/ betrifft nur Dateien unter src/.
Bereits verfolgte Dateien werden **nicht** rückwirkend ignoriert. Wenn du node_modules/ committet hast und es dann in .gitignore aufnimmst, brauchst du noch git rm -r --cached node_modules, um es zu enttracken.
Eine .gitignore Schritt für Schritt erzeugen
1
Schnellstack-Preset wählen (optional)
Wenn dein Projekt einer üblichen Kombi entspricht — Next.js, Django, Rails — klicke ein Preset und alle relevanten Boxen werden auf einmal angehakt. Anschließend Extras gezielt hinzu oder weg.
2
Sprachen hinzufügen
Jede Sprache hat zu ignorierende Artefakte: Node hat node_modules/, Python __pycache__/ und Virtualenvs, Java target/ und .class. Wähle die Sprachen, die dein Projekt tatsächlich kompiliert.
3
Frameworks hinzufügen
Auf den Sprachregeln addieren Frameworks ihre Build-Ordner: Next.js will .next/ und .vercel, Django will staticfiles/ und db.sqlite3, Rails will tmp/ und /storage/*. Hak an, was du verwendest.
4
Editoren und Betriebssysteme
Nimm Editor-Templates fürs **Team** (nicht nur dich) — wenn jemand JetBrains oder Vim nutzt, dazu. Dann die Betriebssysteme: macOS legt .DS_Store ab, Windows Thumbs.db, beide commitet man leicht versehentlich mit.
5
Kopieren oder herunterladen
Das rechte Panel zeigt die zusammengeführte und deduplizierte Ausgabe. **Kopieren** klicken und ins .gitignore im Repo-Root einfügen, oder **Herunterladen** und die Datei direkt speichern.
Das Minimum für jedes Node-Projekt, das mit einem macOS-Kollegen geteilt wird. Auch ein kleines Sideproject sollte diese Regeln haben — ohne .DS_Store und node_modules/ schlägst du dich mit sinnlosen Konflikten herum.
Ein typisches Django-Backend, in PyCharm entwickelt. Beachte: die lokale db.sqlite3 ist ignoriert — die Prod nutzt sie nie, und ein Commit leakt Dev-Daten und zerschießt frische Klone deiner Teammitglieder.
Eine Regel mit Negation aushebeln
Alle Logs ignorieren, eines behalten
*.log
!keep-me.log
Die erste Zeile ignoriert alle .log. !keep-me.log schließt diese eine Datei wieder ein. Negationen wirken nur für Dateien, die eine vorherige Regel wirklich ignoriert hat — eine Datei in einem ignorierten Ordner lässt sich nicht wieder einschließen.
Häufige .gitignore-Fehler
.gitignore nachträglich anlegen und erwarten, dass bereits committete Dateien verschwinden. Tun sie nicht — du brauchst git rm -r --cached <Pfad> zum Enttracken.
Eine .env einmal committen. Ein einziger Commit hinterlässt das Geheimnis für immer in der Historie. Lege .env* **vor** dem ersten Commit in .gitignore und rotiere alles, was bereits durchgerutscht ist.
OS-Lärm bei geteilten Repos vergessen. Wenn auch nur eine Person im Team macOS nutzt und das Repo keine .DS_Store-Regel hat, tauchen diese Dateien in jeder PR auf.
FAQ zum .gitignore-Generator
Woher kommen diese Templates?
Die Templates wurden aus dem Open-Source-Projekt github/gitignore verdichtet — derselbe Quellschatz, den GitHub nutzt, wenn du beim Erstellen eines Repos ".gitignore hinzufügen" ankreuzt. Wir haben jedes Template auf die Regeln gekürzt, die Teams wirklich brauchen, und in Kategorien gruppiert.
Soll ich die .gitignore-Datei selbst committen?
Ja. .gitignore ist dafür gemacht, versioniert und mit dem Team geteilt zu werden. Es ist der *Vertrag* darüber, was verfolgt wird und was nicht. Ausnahme: persönliche Vorlieben (z. B. dein Editor) — die gehören in deine globale ~/.gitignore_global.
Wie enttracke ich eine bereits committete Datei?
Zuerst zur .gitignore hinzufügen, dann git rm --cached <Pfad> (oder git rm -r --cached <Ordner>) ausführen, um sie aus dem Index zu entfernen, ohne die Datei zu löschen. Beide Änderungen zusammen committen, damit dein Team das Update sieht.
Kann ich mehrere .gitignore in einem Repo haben?
Ja. Git sucht in jedem Verzeichnis nach einer .gitignore und wendet die Regeln auf diesen Teilbaum an. Hilfreich in Monorepos, in denen Frontend und Backend sehr unterschiedlich ignorieren — gemeinsame Regeln an die Wurzel, sprachspezifische ins jeweilige Paket.
Was ist der Unterschied zwischen .gitignore und .git/info/exclude?
.gitignore wird committet und mit dem Team geteilt. .git/info/exclude lebt nur in deinem lokalen Klon und ist für persönliche Ausschlüsse, die du nicht pushen willst. Für Ausschlüsse über alle deine Repos hinweg nimm eine globale ~/.gitignore_global.