Wenn Sie .gitignore anfangs falsch konfiguriert haben und bereits von git verfolgte Dateien (z.B. Cache-Dateien, Konfigurationen usw.) existieren, werden Änderungen an .gitignore diese bereits verfolgten Dateien nicht automatisch ignorieren. In einem solchen Fall können Sie die folgende Vorgehensweise verwenden.

Entfernen unnötiger Dateien von Git-Tracking


1. Fügen Sie die Dateien (oder Verzeichnisse), die ignoriert werden sollen, zu .gitignore hinzu

Beispiel:

# .gitignore
*.log
__pycache__/
.env

2. Entfernen Sie die Verfolgung von bereits verfolgten Dateien (d.h. machen Sie sie zu untracked)

Wenn Sie möchten, dass git eine bereits commitete .env-Datei ignoriert, können Sie den folgenden Befehl ausführen.

git rm --cached .env
  • Die --cached-Option entfernt die Verfolgung nur aus git, während die lokale Datei bleibt.

  • Für einen Ordner (z.B. __pycache__/) gehen Sie wie folgt vor:

    bash git rm -r --cached __pycache__/


3. Änderungen committen

git add .gitignore
git commit -m "Update .gitignore und unerwünschte verfolgte Dateien entfernen"

Damit wird die betreffende Datei/der Ordner in Zukunft von git ignoriert. (Es verbleibt jedoch in den bereits committeten früheren Historien, aber wird nicht mehr verfolgt.)


Möchten Sie mehrere Dateien auf einmal untracken?

Um alle Dateien, die Sie in .gitignore hinzugefügt haben, auf einmal untracken zu können, können Sie Folgendes tun:

git rm -r --cached .
git add .
git commit -m "Wenden Sie .gitignore auf bestehende Dateien an"
  • Diese Methode staged alle Dateien erneut, also Vorsicht! (Überprüfen Sie die Änderungen gut, um nicht bei den Commithistorien durcheinander zu geraten!)

Hinweise/Tipps

  • Sie können mit git status überprüfen, ob der untracked Zustand ordnungsgemäß angewendet wurde!

  • Um bereits auf remote (z.B. GitHub) hochgeladene sensible Dateien vollständig zu löschen, sind separate Tools wie git filter-branch oder BFG Repo-Cleaner erforderlich.


Ich hoffe, dieser Beitrag hat denjenigen geholfen, die wegen versehentlich verfolgter Dateien Schwierigkeiten hatten.
Machen Sie heute einen weiteren Schritt zu einer sauberen Git-Historie!