Als je in het begin .gitignore verkeerd hebt ingesteld en al bestanden hebt die door git worden gevolgd (bijv. cachebestanden, configuratie, enz.), dan zullen deze al gevolgd bestanden niet automatisch worden genegeerd, ook al pas je later .gitignore aan.
Je kunt dit probleem oplossen met de onderstaande stappen.

Afbeelding om onnodige bestanden in Git te ontkoppelen


1. Voeg bestanden (of directories) toe aan .gitignore die je wilt negeren

Voorbeeld:

# .gitignore
*.log
__pycache__/
.env

2. Maak al gevolgd bestanden untrack (oftewel, zorg ervoor dat git ze niet meer volgt)

Als je bijvoorbeeld wilt dat git het al gecommitteerde .env bestand negeert,
voer dan het onderstaande commando uit.

git rm --cached .env
  • De --cached optie zorgt ervoor dat lokale bestanden behouden blijven, terwijl de tracking door git wordt opgeheven.

  • Als het een map is (bijv. __pycache__/), doe dan als volgt:

    bash git rm -r --cached __pycache__/


3. Wijzigingen committen

git add .gitignore
git commit -m "Update .gitignore en verwijder ongewenste getrackte bestanden"

Als je dit doet, worden de betreffende bestanden/mappen voortaan door git genegeerd.
(Let op, ze blijven in de eerdere commitgeschiedenis staan, maar worden in de toekomst niet meer gevolgd.)


Wil je meerdere bestanden tegelijk untracken?

Om alle bestanden die je hebt toegevoegd aan .gitignore in één keer te untracken, kun je het als volgt doen:

git rm -r --cached .
git add .
git commit -m "Pas .gitignore toe op bestaande bestanden"
  • Deze methode herstaged alle bestanden, dus gebruik met voorzichtigheid! (Controleer goed de wijzigingen voor je commits om verwarring te voorkomen!)

Opmerking/Tip

  • Met git status kun je controleren of de untracked status correct is toegepast!

  • Voor het volledig verwijderen van gevoelige bestanden die al naar een remote (bijv. GitHub) zijn geüpload, heb je aparte tools zoals git filter-branch of BFG Repo-Cleaner nodig.


Ik hoop dat dit nuttig was voor degenen die problemen hebben gehad door per ongeluk getrackte bestanden.
Maak een stap verder naar een nette Git-historie vandaag!