.gitignore richtig nutzen
Mit einer .gitignore-Datei hältst du dein Repository sauber. Lerne, welche Dateien nicht in die Versionskontrolle gehören und wie du sie ausschließt.
Nicht alles, was in deinem Projektordner liegt, gehört auch in die Versionskontrolle. Build-Ordner, Passwörter, temporäre Dateien oder riesige Abhängigkeiten haben in Git nichts zu suchen. Genau dafür gibt es die .gitignore-Datei. In diesem Beitrag lernst du, wie du sie richtig einsetzt und dein Repository sauber hältst.
Was ist eine .gitignore-Datei?
Die .gitignore ist eine einfache Textdatei im Projektordner. In ihr listest du Muster auf, die Git beim Versionieren ignorieren soll. Dateien, die zu einem dieser Muster passen, tauchen dann gar nicht erst in git status auf und werden nie committet.
Das hält dein Repository klein, schützt sensible Daten und vermeidet unnötige Konflikte durch Dateien, die jeder lokal anders hat.
Eine .gitignore anlegen
Du legst die Datei einfach im Wurzelverzeichnis deines Projekts an. Der Name beginnt mit einem Punkt und hat keine Endung.
# Eine leere .gitignore erstellen
touch .gitignore
# Inhalt anzeigen lassen
cat .gitignore
# Die Datei selbst gehört mit in die Versionskontrolle
git add .gitignore
git commit -m ".gitignore hinzugefügt"Wichtig: Die .gitignore selbst wird nicht ignoriert, sondern committet. So gelten die Regeln für alle, die am Projekt arbeiten.
Muster und Regeln verstehen
In der .gitignore schreibst du pro Zeile ein Muster. Du kannst einzelne Dateien, ganze Ordner oder mit Platzhaltern auch Dateigruppen ausschließen.
# Eine einzelne Datei ignorieren
geheim.txt
# Alle Dateien mit einer bestimmten Endung
*.log
# Einen kompletten Ordner ignorieren
node_modules/
# Eine Ausnahme von einer Regel definieren
*.log
!wichtig.logDas Sternchen * steht für beliebige Zeichen. Mit einem Ausrufezeichen ! kannst du eine zuvor ignorierte Datei wieder einschließen. Ein abschließender Schrägstrich wie bei node_modules/ macht klar, dass es sich um einen Ordner handelt.
Typische Einträge nach Projekttyp
Je nach Programmiersprache und Werkzeug gibt es typische Kandidaten, die du ignorieren solltest. Hier ein paar gängige Beispiele.
# Abhängigkeiten und Build-Ordner
node_modules/
dist/
build/
# Umgebungsvariablen und Geheimnisse
.env
.env.local
# Betriebssystem- und Editor-Dateien
.DS_Store
Thumbs.db
.vscode/
# Python-spezifisch
__pycache__/
*.pycBesonders wichtig ist die .env-Datei: Sie enthält oft Passwörter und API-Schlüssel. Diese dürfen niemals in ein öffentliches Repository gelangen.
Bereits getrackte Dateien nachträglich ignorieren
Ein häufiger Stolperstein: Hast du eine Datei schon einmal committet, ignoriert Git sie trotz Eintrag in der .gitignore weiterhin nicht. Du musst sie zuerst aus der Verwaltung entfernen.
# Datei aus dem Tracking nehmen, lokal aber behalten
git rm --cached geheim.txt
# Einen ganzen Ordner aus dem Tracking nehmen
git rm -r --cached node_modules/
# Danach committen
git commit -m "Versehentlich getrackte Dateien entfernt"Die Option --cached ist entscheidend: Sie entfernt die Datei nur aus Git, lässt sie aber auf deiner Festplatte. Ohne diese Option würdest du die Datei tatsächlich löschen.
Globale .gitignore für alle Projekte
Manche Dateien möchtest du in jedem Projekt ignorieren, etwa Betriebssystem-Müll wie .DS_Store. Dafür gibt es eine globale Konfiguration.
# Eine globale ignore-Datei festlegen
git config --global core.excludesfile ~/.gitignore_global
# Inhalte hinzufügen (Beispiel)
echo ".DS_Store" >> ~/.gitignore_globalSo musst du diese Einträge nicht in jedem Projekt wiederholen. Die globale Datei ergänzt die projektspezifische .gitignore.
Fazit
Eine gut gepflegte .gitignore ist ein kleiner Aufwand mit großer Wirkung. Sie hält dein Repository schlank, schützt Geheimnisse wie API-Schlüssel und erspart dir Ärger mit Build- und Systemdateien. Lege sie am besten direkt zu Projektbeginn an. Für die meisten Sprachen findest du fertige Vorlagen, zum Beispiel auf der GitHub-Sammlung gitignore. Mit diesem Wissen bleibt dein Code sauber und professionell.