Menu

.gitignore-Generator

Erstelle eine saubere .gitignore für jeden Stack — Sprachen, Frameworks, IDEs und Betriebssysteme.

Zuletzt aktualisiert

Schnellstacks
Templates wählen2 ausgewählt

Sprachen

Frameworks

Editoren & IDEs

Betriebssysteme

.gitignore · 37 Zeilen
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/
.npm
.yarn-integrity

# Coverage
coverage/
*.lcov
.nyc_output

# Build output
dist/
build/

# Environment
.env
.env.local
.env.*.local

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

Was ist ein .gitignore-Generator?

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.

.gitignore-Syntax — Schnellreferenz

Die Muster, die du am häufigsten schreibst. Volle Referenz: git-scm.com/docs/gitignore.

MusterBedeutungBeispiel
node_modulesIgnoriere eine Datei oder einen Ordner mit genau diesem Namen irgendwo im BaumErfasst sowohl /node_modules als auch src/node_modules
node_modules/Schrägstrich am Ende — passt nur auf **Ordner**, nicht auf gleichnamige DateienFängt eine versehentlich node_modules benannte Datei nicht
/buildSchrägstrich am Anfang — verankert am Verzeichnis der .gitignoreTrifft /build, nicht src/build
*.logGlob — passt auf jede Datei, die auf .log endetTrifft error.log, debug.log, logs/foo.log
!important.logNegation — schließt eine durch eine frühere Regel ignorierte Datei wieder einMit *.log kombinieren, um eine Log-Datei trotzdem zu verfolgen
docs/**/draftDoppelstern — trifft draft in jedem Unterordner von docs/Trifft docs/v1/draft und docs/2025/q1/draft
# commentKommentar — Git ignoriert Zeilen, die mit # beginnenRegeln mit Abschnittsüberschriften wie # Node.js gruppieren

.gitignore-Beispiele zum Ausprobieren

Minimal-.gitignore Node.js + macOS

Das, was jedes Node-Projekt auf einem Mac braucht

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

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.

Python + Django + JetBrains

Klassischer serverseitiger Python-Stack

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

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.

Weitere Entwickler-Tools

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S