Sollte ich node_modules committen?
Nein. Das node_modules-Verzeichnis kann Hunderte von Megabytes an Dateien und Tausende von Paketen enthalten. Es sollte immer in .gitignore stehen. Verwende 'npm install' oder 'yarn install', um es aus package.json und der Lock-Datei neu zu erstellen.
Sollte ich package-lock.json oder yarn.lock committen?
Ja. Lock-Dateien stellen sicher, dass jeder in deinem Team exakt dieselben Abhängigkeitsversionen erhält. Committe immer deine Lock-Datei (package-lock.json, yarn.lock oder pnpm-lock.yaml), aber nicht node_modules selbst.
Sollte ich .env-Dateien ignorieren?
Ja. Umgebungsdateien (.env, .env.local) enthalten oft API-Schlüssel, Datenbank-Zugangsdaten und andere Geheimnisse. Füge .env* zu deiner .gitignore hinzu. Verwende .env.example (committed), um zu dokumentieren, welche Variablen benötigt werden.
Was ist mit dist- und build-Ordnern?
Build-Ausgaben wie dist/, build/ und .next/ sollten ignoriert werden. Sie werden aus dem Quellcode generiert und können jederzeit neu erstellt werden. Dies hält dein Repository schlank und verhindert Merge-Konflikte in generierten Dateien.
Sollte ich .npmrc oder .yarnrc committen?
Es kommt darauf an. Diese Dateien können projektweite Einstellungen wie Registry-URLs enthalten, die geteilt werden sollten. Aber wenn sie Auth-Tokens enthalten, solltest du eine .npmrc.example committen und die echte Datei ignorieren. Überprüfe den Inhalt vor dem Committen.
Wie ignoriere ich IDE-Einstellungen richtig?
Füge die Vorlagen für deine verwendeten IDEs hinzu (VS Code, JetBrains, etc.). Diese ignorieren .vscode/, .idea/, *.sublime-* und andere IDE-spezifische Dateien. Manche Teams committen .vscode/settings.json für konsistente Formatierung — das ist eine Teamentscheidung.
Warum werden manche Dateien trotz .gitignore noch verfolgt?
Wenn Dateien bereits committed wurden, bevor du sie zu .gitignore hinzugefügt hast, werden sie weiterhin verfolgt. Führe 'git rm --cached <datei>' aus, um sie aus der Verfolgung zu entfernen, dann committe die Änderung. Die Datei bleibt lokal, wird aber nicht mehr verfolgt.