Git Repo aufräumen¶
Ziel¶
Dateien wurden versehentlich ins Repo committed, sollen aber durch .gitignore ignoriert werden.
Beispiele:
*.log
*.sql
*.zip
vendor/
temp/
.env
1. Prüfen¶
git status
git ls-files -ci --exclude-standard
git ls-files -ci --exclude-standard zeigt getrackte Dateien, die inzwischen von .gitignore ignoriert werden.
2. Variante A: Git-Historie behalten¶
Empfohlen, wenn das Repo schon benutzt wird.
git rm -r --cached .
git add .
git status
git commit -m "chore: remove ignored files"
git push
Ergebnis:
- ignorierte Dateien werden aus Git entfernt
- lokale Dateien bleiben auf der Platte
- alte Commits bleiben erhalten
3. Variante B: Neu initialisieren¶
Nur verwenden, wenn die alte Git-Historie egal ist.
Sicherer als löschen: .git erst wegschieben.
git remote -v
mv .git ../repo-git-backup-$(date +%F-%H%M%S)
git init
git checkout -b main
git add .
git status
git commit -m "chore: initial clean import"
Remote wieder verbinden:
git remote add origin git@gitlab.com:gruppe/projekt.git
git push -u origin main
Wenn dasselbe Remote-Repo schon alte Historie enthält, Push nur nach Absprache überschreiben:
git push --force-with-lease -u origin main
Wichtig¶
.gitignore und git rm --cached entfernen Dateien nur aus dem aktuellen Stand.
Wenn Passwörter, Dumps oder sensible Daten committed wurden:
- Secret austauschen
- Datei aus Git entfernen
- History separat bereinigen, wenn nötig