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:

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:

  1. Secret austauschen
  2. Datei aus Git entfernen
  3. History separat bereinigen, wenn nötig