Bestanden verwijderen uit Git-repositories zonder je project te breken
Leer hoe je bestanden verwijdert in een Git-repository, veelgemaakte fouten voorkomt en je repo netjes beheert, ook in complexe of gevoelige scenario’s.
Bestanden verwijderen in Git is niet altijd zo simpel als het lijkt. Je verwijdert een bestand van je systeem, maar dat betekent niet dat het ook uit de repository weg is. Het kan nog steeds in je geschiedenis staan of, erger nog, per ongeluk gecommit worden, zoals een config-bestand of een API-sleutel.
In deze gids leer je hoe je bestanden uit Git verwijdert. We beginnen met basiscommando’s zoals git rm en gaan daarna in op geavanceerdere methoden, zoals het opschonen van niet-getrackte bestanden en het bewerken van je commithistorie.
Vereisten
Voordat we bestanden met Git verwijderen, zorgen we dat alles goed is ingesteld.
Controleer eerst of Git is geïnstalleerd. Open je terminal en voer uit:
Zie je een versienummer, dan ben je klaar om te gaan.
Zie je een versienummer, dan ben je klaar om te gaan.
Je kunt ook een Git-GUI installeren zoals GitHub Desktop, Sourcetree of GitKraken als je liever visueel werkt. Maar in deze gids gebruik ik de command line (Git Bash).
Zorg dat je toestemming hebt om wijzigingen aan te brengen in de repository, zeker als je deel uitmaakt van een team of werkt met een remote repo zoals GitHub of GitLab.
Let op: Sommige verwijderacties zijn niet ongedaan te maken. Het is dus slim om een back-up van je project te maken of in elk geval de staat van je repo dubbel te checken voordat je commando’s uitvoert die bestanden verwijderen.
Klaar? Laten we beginnen.
Basisbestanden verwijderen in Git
Er zijn verschillende manieren om bestanden in Git te verwijderen, afhankelijk van wat je wilt doen. Dit zijn veelvoorkomende opties:
Met git rm
Het git rm-commando verwijdert bestanden uit je Git-repository. Als je het uitvoert, gebeuren er twee dingen:
Git verwijdert het bestand uit je working directory
Het staged die wijziging voor de volgende commit
Maar Git verwijdert het bestand niet alleen. Het legt de verwijdering vast in je geschiedenis. Zodra je commit, is het bestand officieel uit het project verwijderd.
Dit verwijdert alle bestanden in de temp-map zonder de map zelf te verwijderen.
Git voegt ook veiligheidschecks toe. Als een bestand onopgeslagen wijzigingen heeft, verwijdert Git het niet tenzij je forceert. Gebruik dit dus alleen als je zeker weet dat die wijzigingen weg kunnen:
(Hier betekent * alles. Het matcht elke bestandsnaam die eindigt op .txt.)
2. --cached
Dit verwijdert het bestand uit de repository maar laat het op je computer staan. Stel dat ik per ongeluk een gevoelig bestand zoals config.env heb toegevoegd. Ik wil het niet in de repo, maar ik heb het lokaal nog wel nodig. Dan voer ik uit:
Hier verwijdert git rm het uit de repository en working directory. En --cached haalt het uit tracking door Git (zodat het niet wordt gepusht), maar laat het fysiek staan.
Voeg het toe aan .gitignore om te voorkomen dat het opnieuw wordt toegevoegd:
Staat voor recursive. In plaats van één bestand verwijdert dit recursief de map en de inhoud. Zonder deze vlag krijg je een fout als je een map probeert te verwijderen.
Je hoeft git add niet apart uit te voeren. Het is netter en je vergeet niet om de verwijdering te stagen.
Kort samengevat:
Handmatig verwijderen vereist extra stappen om zeker te zijn dat Git de wijziging oppikt.
Als je vergeet de verwijdering te stagen, denkt Git dat het bestand nog bestaat, wat verwarring kan geven bij commits of merges.
git rm is netter en veiliger als je bewust getrackte bestanden verwijdert.
Verwijderde bestanden herstellen in Git
Wat als je een bestand verwijdert en later beseft dat je het toch nodig hebt? Geen probleem. Git geeft je een paar manieren om het terug te halen, afhankelijk van wanneer je de fout opmerkt.
Als je nog niet hebt gecommit:
Stel dat je het bestand hebt verwijderd maar de wijziging nog niet hebt gecommit. Je kunt het uit de laatste commit herstellen zoals dit:
Dit toont een volledige geschiedenis van je Git-commits, checkouts, resets, alles.
Maar git reflog is alleen lokaal en werkt niet op remotes. Werk je met een remote repo, gebruik dan beter git log -- file.txt om de geschiedenis van dat bestand te volgen.
Zodra je het punt vindt waar het bestand nog bestond, herstel je het met git checkout of git restore zoals hiervoor.
Ontbrekende bestanden in Git oplossen
Soms worden bestanden rechtstreeks via het systeem verwijderd—via een bestandsverkenner, een terminal-commando rm of per ongeluk. In dat geval ruimt Git niet automatisch op. In plaats daarvan markeert Git die bestanden als ontbrekend en wacht tot jij de verwijdering goed afhandelt.
Vervang <branch-name> door de werkbranch, zoals main of dev.
Stap 4: Alternatief
Stel dat je een hoop bestanden handmatig hebt verwijderd, misschien per ongeluk of tijdens het opschonen. Git denkt nog steeds dat die bestanden bestaan totdat je iets anders zegt.
Als je ze niet één voor één met git rm wilt verwijderen, is er een snellere manier om op te ruimen.
git ls-files --deleted toont alle bestanden die Git trackt maar die nu ontbreken.
xargs -0 git rm geeft die bestandsnamen door aan git rm en verwijdert ze uit Git’s index.
Dit is erg handig in grote projecten als je snel wilt opschonen.
Let op: Ik kreeg dit bericht omdat er geen getrackte bestanden zijn die momenteel op je schijf ontbreken.
Geavanceerd bestanden verwijderen in Git
Nu we de basis hebben behandeld, kijken we naar meer geavanceerde situaties waarin een bestand uit Git verwijderen niet zo simpel is als git rm draaien. Dit zijn gevallen waarbij gevoelige data speelt of niet-getrackte bestanden zorgvuldig moeten worden opgeschoond.
Gevoelige data uit Git verwijderen
Soms wordt een bestand met privégegevens, zoals API-sleutels of wachtwoorden, per ongeluk gecommit. Gewoon verwijderen helpt dan niet. Git bewaart een volledige geschiedenis, en het bestand bestaat nog in eerdere commits.
Om het volledig te wissen, kun je het commando git filter-repo gebruiken: git filter-repo (aanbevolen)
Dit is een nieuwer en beter alternatief voor filter-branch. Het is sneller, veiliger en makkelijker te gebruiken.
Installeer het eerst (je hebt Python en pip nodig):
Breng je teamgenoten daarna op de hoogte. Zij moeten hun lokale kopieën opnieuw clonen of resetten om fouten te voorkomen.
Niet-getrackte bestanden opschonen met git clean
Kort samengevat:
Getrackte bestanden staan in Git’s geschiedenis. Gebruik git rm om ze te verwijderen en commit daarna.
Niet-getrackte bestanden staan helemaal niet in Git. Die kunnen zich ophopen en je project vervuilen.
Gebruik git clean om niet-getrackte bestanden of mappen te verwijderen.
Dit zijn de meest nuttige opties:
git clean -n # Show which untracked files will be removedgit clean -nd # Show which untracked folders will be removedgit clean -fd # Delete all untracked files and folders. It is destructive.Mogelijk gemaakt door
Hierbij geldt:
-n betekent alleen een preview.
-f betekent geforceerd verwijderen.
-d neemt mappen mee in de opschoning.
Let op: git clean raakt geen getrackte bestanden. Maar het verwijdert wel alles wat niet getrackt is, ook bestanden die je misschien wilde houden. Gebruik dus altijd eerst -n om te zien wat er verwijderd wordt.
Bestanden verwijderen in GitHub & GUI-tools
Tot nu toe hebben we vooral de command line gebruikt. Maar niet iedereen werkt zo en dat is helemaal prima. Sommige ontwikkelaars gebruiken visuele tools of werken direct in GitHub.
Laten we dus bekijken hoe verwijderen werkt in de webinterface van GitHub en andere GUI-tools, en hoe dat zich verhoudt tot de command line.
Bestanden verwijderen op de GitHub-website
Werk je in de browserinterface van GitHub, dan kun je bestanden verwijderen zonder de terminal te gebruiken.
Zo werkt het in de interface van 2025:
Open het bestand dat je wilt verwijderen.
Klik op de drie puntjes rechtsboven.
Kies Delete file in het dropdownmenu.
GitHub toont daarna een veld voor het commitbericht. Voeg een kort bericht toe zoals:
Of een nieuwe branch aanmaken en een pull request starten (aanbevolen voor teamworkflows)
Klik op Commit changes en GitHub verwijdert het bestand en slaat de verwijdering op als een commit, net zoals git rm dat via de command line doet.
Bestanden verwijderen met Git-GUI-tools
Gebruik je een Git-GUI zoals GitHub Desktop, Sourcetree of Tower, dan is het proces ook eenvoudig:
Verwijder het bestand in je bestandsverkenner of binnen de app.
De app toont de verwijdering onder “Changes” of “File Status”.
Bekijk, stage en commit de wijziging.
Elke tool ziet er net anders uit, maar de workflow is vergelijkbaar: je volgt wijzigingen visueel en commit wanneer je klaar bent.
Best practices per platform
Een korte blik op hoe verwijderen werkt op verschillende platforms, en wanneer welke het handigst is:
GitHub (Web): Goed voor snelle fixes en kleine updates. Vermijd voor grote opschoningen of gevoelige bestanden.
Git-GUI-tools: Fijn voor dagelijks werk. Makkelijk wijzigingen zien en veilig committen.
Command line: Het meest flexibel en krachtig. Beste keuze voor geavanceerde taken zoals bulkbewerkingen of geschiedenis herschrijven.
Best practices voor bestanden verwijderen in Git
Bestanden verwijderen in Git lijkt simpel, maar één verkeerde stap kan je code breken. Dit zijn praktische tips die ik gebruik om zeker te zijn dat verwijderingen veilig en gecontroleerd gaan, vooral bij gedeelde of langlopende projecten.
Altijd verifiëren vóór je verwijdert
Neem even de tijd om te checken wat een bestand doet voordat je het verwijdert:
Voer git status uit om te zien of het is gestaged of gewijzigd.
Gebruik git log -- <filename> om de commithistorie te bekijken.
Deze snelle check bespaart me later uren herstelwerk.
Gebruik atomische commits
Een atomische commit betekent één commit per logische wijziging.
Als ik bijvoorbeeld ongebruikte bestanden verwijder, commit ik alleen die verwijderingen, los van code-edits.
Waarom dit helpt:
Debuggen is makkelijker. Tools zoals git bisect werken beter wanneer commits klein en gericht zijn.
De commithistorie blijft schoon en duidelijk.
Code reviews gaan sneller.
Voorzichtig samenwerken bij geschiedenis herschrijven
Geschiedenis herschrijven met tools zoals git filter-repo raakt iedereen in je team. Om chaos te voorkomen:
Communiceer voordat je gedeelde branches herschrijft.
Gebruik git push --force voorzichtig, want het herschrijft de remote geschiedenis.
Zeg tegen teamgenoten dat ze daarna opnieuw moeten clonen of hun lokale repo’s moeten resetten.
Gebruik --dry-run vóór destructieve commando’s
Test altijd eerst een commando dat bestanden verwijdert:
Houdt gevoelige of lokale bestanden (zoals .env, .log of node_modules) uit de repo.
Voorkomt ruis in je Git-geschiedenis.
Toekomstige bewerkingen aan die bestanden triggeren geen Git-wijzigingen meer.
Git-randgevallen: stagen & lege mappen
Soms loopt bestanden verwijderen anders dan verwacht. Je staged per ongeluk het verkeerde bestand of je loopt tegen problemen met lege mappen aan.
Zo pak ik veelvoorkomende randgevallen aan.
Unstagen zonder je wijzigingen te verliezen
Stel, ik voer git add . uit en stage per ongeluk een bestand dat ik niet wilde. Ik wil mijn wijzigingen niet kwijt—ik wil het alleen uit de staging halen.
Nu zou het bestand als "modified" in plaats van "staged" moeten verschijnen.
Lege mappen in de repo houden
Standaard negeert Git lege mappen. Als ik een map zonder bestanden probeer te committen, slaat Git die over.
Maar soms wil ik die map in de repo houden voor toekomstige logs of uploads. De gebruikelijke oplossing is een placeholderbestand .gitkeep toevoegen.
Zo doe je dat:
touch logs/.gitkeepgit add logs/.gitkeepgit commit -m "Keep logs folder in the repo"Mogelijk gemaakt door
Dit maakt de map “niet-leeg”, zodat Git ‘m trackt.
Let op: .gitkeep is geen ingebouwd Git-ding. Het is gewoon een conventie. Je kunt het bestand anders noemen, maar .gitkeep laat anderen zien waar het voor is.
Problemen oplossen bij bestanden verwijderen in Git
Hier zijn een paar veelvoorkomende problemen die ik tegenkom bij het verwijderen van bestanden in Git, en hoe je ze oplost.
Het bestand verschijnt nog steeds in de remote repository
Je hebt het bestand verwijderd en de wijziging gecommit, maar het staat nog op de remote. Misschien ben je vergeten te pushen.
Dit zet alle bestanden terug naar hun laatst gecommitteerde staat.
Tot slot
Als je bestanden verwijdert in Git, is het makkelijk om fouten te maken als je niet oplet. Een kleine misstap kan leiden tot grotere problemen: kapotte code, werkverlies of verwarring in je team. Neem daarom even de tijd om te dubbelchecken wat je doet.
Gebruik het juiste commando voor de situatie. Als je niet zeker weet wat iets doet, test het eerst met een dry run. En werk je met anderen, zorg dan dat iedereen op één lijn zit.
Stagen betekent wijzigingen klaarzetten voor je volgende commit. Wanneer je git rm filename uitvoert, verwijdert Git het bestand uit je map en bereidt die verwijdering voor om in de volgende commit te worden opgeslagen. Dit heet het stagen van de verwijdering. De wijziging is niet definitief totdat je git commit draait.
Wat is het verschil tussen git rm en rm?⌄
rm verwijdert een bestand alleen uit je lokale map. Git volgt deze wijziging pas als je dat aangeeft.
git rm verwijdert het bestand en staget de verwijdering voor je volgende commit, zodat Git het ook uit de repo verwijdert.
Wanneer gebruik ik git push origin vs git push?⌄
Wanneer gebruik je welke:
Gebruik git push als je branch al gekoppeld is aan een remote.
Gebruik git push origin als je duidelijk wilt aangeven naar welke remote je pusht, bijvoorbeeld bij een nieuwe branch of als je meer dan één remote hebt.
Wat doet git pull?⌄
git pull werkt je lokale branch bij met de nieuwste wijzigingen van de remote. Het haalt nieuwe commits op van de remote en merge’t die vervolgens in je huidige branch.
Ik ben een contentstrateeg die graag complexe onderwerpen eenvoudig maakt. Ik heb bedrijven als Splunk, Hackernoon en Tiiny Host geholpen om boeiende en informatieve content te maken voor hun doelgroep.
Bestanden verwijderen in Git is niet altijd zo simpel als het lijkt. Je verwijdert een bestand van je systeem, maar dat betekent niet dat het ook uit de repository weg is. Het kan nog steeds in je geschiedenis staan of, erger nog, per ongeluk gecommit worden, zoals een config-bestand of een API-sleutel.
In deze gids leer je hoe je bestanden uit Git verwijdert. We beginnen met basiscommando’s zoals
git rmen gaan daarna in op geavanceerdere methoden, zoals het opschonen van niet-getrackte bestanden en het bewerken van je commithistorie.Vereisten
Voordat we bestanden met Git verwijderen, zorgen we dat alles goed is ingesteld.
Controleer eerst of Git is geïnstalleerd. Open je terminal en voer uit:
Zie je een versienummer, dan ben je klaar om te gaan.
Zie je een versienummer, dan ben je klaar om te gaan.
Je kunt ook een Git-GUI installeren zoals GitHub Desktop, Sourcetree of GitKraken als je liever visueel werkt. Maar in deze gids gebruik ik de command line (Git Bash).
Zorg dat je toestemming hebt om wijzigingen aan te brengen in de repository, zeker als je deel uitmaakt van een team of werkt met een remote repo zoals GitHub of GitLab.
Let op: Sommige verwijderacties zijn niet ongedaan te maken. Het is dus slim om een back-up van je project te maken of in elk geval de staat van je repo dubbel te checken voordat je commando’s uitvoert die bestanden verwijderen.
Klaar? Laten we beginnen.
Basisbestanden verwijderen in Git
Er zijn verschillende manieren om bestanden in Git te verwijderen, afhankelijk van wat je wilt doen. Dit zijn veelvoorkomende opties:
Met git rm
Het
git rm-commando verwijdert bestanden uit je Git-repository. Als je het uitvoert, gebeuren er twee dingen:Maar Git verwijdert het bestand niet alleen. Het legt de verwijdering vast in je geschiedenis. Zodra je commit, is het bestand officieel uit het project verwijderd.
Je kunt één bestand verwijderen, meerdere bestanden, of een groep bestanden met wildcards.
Bijvoorbeeld, om alle logbestanden te verwijderen:
Dit zegt tegen Git dat elk bestand in de map dat eindigt op
.logverwijderd moet worden. Je kunt de wijziging bevestigen met:Meerdere bestanden verwijderen met één git rm-commando. Afbeelding door auteur.
Alle bestanden in een map verwijderen maar de map zelf behouden? Gebruik:
Dit verwijdert alle bestanden in de temp-map zonder de map zelf te verwijderen.
Git voegt ook veiligheidschecks toe. Als een bestand onopgeslagen wijzigingen heeft, verwijdert Git het niet tenzij je forceert. Gebruik dit dus alleen als je zeker weet dat die wijzigingen weg kunnen:
Om een hele map en alles erin te verwijderen, voeg je de
-r-vlag toe:Dit verwijdert
testfolderen alle bestanden erin.Nu, om de wijziging te committen, voer je het volgende commando uit:
Belangrijke opties voor git rm
Dit zijn de meest gebruikte opties bij
git rm:1. <bestandsnaam>
Dit is de basis. Som de bestanden op die je wilt verwijderen:
Je kunt ook een wildcard gebruiken om meerdere bestanden van hetzelfde type te verwijderen. Bijvoorbeeld om alle
.txt-bestanden te verwijderen:(Hier betekent
*alles. Het matcht elke bestandsnaam die eindigt op.txt.)2. --cached
Dit verwijdert het bestand uit de repository maar laat het op je computer staan. Stel dat ik per ongeluk een gevoelig bestand zoals config.env heb toegevoegd. Ik wil het niet in de repo, maar ik heb het lokaal nog wel nodig. Dan voer ik uit:
Hier verwijdert
git rmhet uit de repository en working directory. En--cachedhaalt het uit tracking door Git (zodat het niet wordt gepusht), maar laat het fysiek staan.Voeg het toe aan
.gitignoreom te voorkomen dat het opnieuw wordt toegevoegd:3. -r
Staat voor recursive. In plaats van één bestand verwijdert dit recursief de map en de inhoud. Zonder deze vlag krijg je een fout als je een map probeert te verwijderen.
Hier heb ik een map
testfoldergemaakt met twee bestanden erin:a.txtenb.txt. Vervolgens voer ik dit commando uit:Dit verwijderde de map samen met alle inhoud en bestanden erin
4.
--dry-runWeet je niet zeker wat er gebeurt als je een bestand verwijdert, gebruik dan
git rmmet de optie--dry-runzo:Dit is een veilige manier om te bekijken wat er verwijderd wordt.
Of als je niet-getrackte bestanden wilt opschonen en dubbel wilt checken wat er weggaat, gebruik:
Dit toont alleen wat dit commando zou verwijderen.
Vergelijkende workflow-analyse
Er is meer dan één manier om een bestand in Git te verwijderen. De methoden lijken misschien hetzelfde, maar ze gedragen zich niet hetzelfde.
git rm vs handmatig verwijderen
Neem een bestand genaamd
file.txt. Stel dat ik het niet meer nodig heb.Eén manier is om het rechtstreeks van het systeem te verwijderen.
Op Linux, macOS of Git Bash:
Op Windows (command prompt):
Dit verwijdert het bestand uit je map. Maar Git weet dat nog niet. Dus je moet Git handmatig vertellen dat het bestand is verwijderd:
Dit staged de verwijdering zodat die in de volgende commit wordt opgenomen.
Als je meerdere bestanden hebt verwijderd en niet allemaal herinnert, kun je dit draaien:
Dit staged alle getrackte bestanden die gewijzigd of verwijderd zijn. Het omvat geen niet-getrackte bestanden.
Nu commit je de wijziging:
Als je
git rmgebruikt, handelt het alles in één stap af. Het verwijdert het bestand en staged de wijziging meteen:Je hoeft
git addniet apart uit te voeren. Het is netter en je vergeet niet om de verwijdering te stagen.Kort samengevat:
git rmis netter en veiliger als je bewust getrackte bestanden verwijdert.Verwijderde bestanden herstellen in Git
Wat als je een bestand verwijdert en later beseft dat je het toch nodig hebt? Geen probleem. Git geeft je een paar manieren om het terug te halen, afhankelijk van wanneer je de fout opmerkt.
Als je nog niet hebt gecommit:
Stel dat je het bestand hebt verwijderd maar de wijziging nog niet hebt gecommit. Je kunt het uit de laatste commit herstellen zoals dit:
Dit haalt het bestand terug in je working directory vanuit de laatste commit.
Als je de verwijdering al hebt gecommit:
Ook goed. Zoek eerst de laatste commit waar het bestand nog bestond:
Bekijk de log en kopieer de commit-hash waar het bestand nog aanwezig was. Voer dan uit:
In oudere Git-versies kon je bovenstaand commando gebruiken. Dit herstelt een bestand uit een specifieke commit, maar kon ook van branch wisselen.
Vanaf Git 2.23 is dit opgesplitst in twee duidelijkere commando’s:
git switch(voor van branch wisselen)git restore(voor bestanden herstellen)Wil je alleen een bestand uit een commit herstellen, gebruik dan:
Dit haalt het bestand uit die commit en zet het terug in je working directory.
Als je niet zeker weet wanneer het bestand is verwijderd:
Misschien heb je veel wijzigingen gedaan en weet je niet meer wanneer het bestand verdween. Gebruik in dat geval git reflog of reference log:
Dit toont een volledige geschiedenis van je Git-commits, checkouts, resets, alles.
Maar
git reflogis alleen lokaal en werkt niet op remotes. Werk je met een remote repo, gebruik dan betergit log -- file.txtom de geschiedenis van dat bestand te volgen.Zodra je het punt vindt waar het bestand nog bestond, herstel je het met
git checkoutofgit restorezoals hiervoor.Ontbrekende bestanden in Git oplossen
Soms worden bestanden rechtstreeks via het systeem verwijderd—via een bestandsverkenner, een terminal-commando rm of per ongeluk. In dat geval ruimt Git niet automatisch op. In plaats daarvan markeert Git die bestanden als ontbrekend en wacht tot jij de verwijdering goed afhandelt.
Zo pak je dat stap voor stap aan.
Stap 1: Controleer op ontbrekende bestanden
Voer dit uit in je projectmap:
Als Git zegt dat een bestand is verwijderd, betekent dat dat het van je systeem weg is, maar de wijziging nog niet is gestaged.
Stap 2: Stage de verwijdering
Om Git alle wijzigingen te laten stagen (inclusief verwijderde bestanden), voer je uit:
Dit staget alle bestandswijzigingen: nieuw, gewijzigd en verwijderd. Commit daarna de update:
Dit is de veiligste manier om op te schonen, omdat het alle wijzigingen in één keer meeneemt.
Stap 3: Push naar de remote
Als je met een remote repository werkt, push de commit dan:
Vervang
<branch-name>door de werkbranch, zoalsmainofdev.Stap 4: Alternatief
Stel dat je een hoop bestanden handmatig hebt verwijderd, misschien per ongeluk of tijdens het opschonen. Git denkt nog steeds dat die bestanden bestaan totdat je iets anders zegt.
Als je ze niet één voor één met
git rmwilt verwijderen, is er een snellere manier om op te ruimen.Voer dit commando uit in je terminal:
Dit doet het volgende:
git ls-files --deletedtoont alle bestanden die Git trackt maar die nu ontbreken.xargs -0 git rmgeeft die bestandsnamen door aangit rmen verwijdert ze uit Git’s index.Dit is erg handig in grote projecten als je snel wilt opschonen.
Let op: Ik kreeg dit bericht omdat er geen getrackte bestanden zijn die momenteel op je schijf ontbreken.
Geavanceerd bestanden verwijderen in Git
Nu we de basis hebben behandeld, kijken we naar meer geavanceerde situaties waarin een bestand uit Git verwijderen niet zo simpel is als
git rmdraaien. Dit zijn gevallen waarbij gevoelige data speelt of niet-getrackte bestanden zorgvuldig moeten worden opgeschoond.Gevoelige data uit Git verwijderen
Soms wordt een bestand met privégegevens, zoals API-sleutels of wachtwoorden, per ongeluk gecommit. Gewoon verwijderen helpt dan niet. Git bewaart een volledige geschiedenis, en het bestand bestaat nog in eerdere commits.
Om het volledig te wissen, kun je het commando
git filter-repogebruiken: git filter-repo (aanbevolen)Dit is een nieuwer en beter alternatief voor
filter-branch. Het is sneller, veiliger en makkelijker te gebruiken.Installeer het eerst (je hebt Python en pip nodig):
Voer dan uit:
Dit verwijdert het bestand
hide.txtuit elke commit in de geschiedenis van je repo.Om te bevestigen, voer uit:
Als het bestand weg is, voeg het toe aan
.gitignorezodat het niet opnieuw getrackt wordt:Werk je in een team, ruim de herschreven geschiedenis op en force-push de wijzigingen:
Breng je teamgenoten daarna op de hoogte. Zij moeten hun lokale kopieën opnieuw clonen of resetten om fouten te voorkomen.
Niet-getrackte bestanden opschonen met git clean
Kort samengevat:
git rmom ze te verwijderen en commit daarna.Gebruik
git cleanom niet-getrackte bestanden of mappen te verwijderen.Dit zijn de meest nuttige opties:
Hierbij geldt:
-nbetekent alleen een preview.-fbetekent geforceerd verwijderen.-dneemt mappen mee in de opschoning.Let op:
git cleanraakt geen getrackte bestanden. Maar het verwijdert wel alles wat niet getrackt is, ook bestanden die je misschien wilde houden. Gebruik dus altijd eerst-nom te zien wat er verwijderd wordt.Bestanden verwijderen in GitHub & GUI-tools
Tot nu toe hebben we vooral de command line gebruikt. Maar niet iedereen werkt zo en dat is helemaal prima. Sommige ontwikkelaars gebruiken visuele tools of werken direct in GitHub.
Laten we dus bekijken hoe verwijderen werkt in de webinterface van GitHub en andere GUI-tools, en hoe dat zich verhoudt tot de command line.
Bestanden verwijderen op de GitHub-website
Werk je in de browserinterface van GitHub, dan kun je bestanden verwijderen zonder de terminal te gebruiken.
Zo werkt het in de interface van 2025:
GitHub toont daarna een veld voor het commitbericht. Voeg een kort bericht toe zoals:
Je kunt ook een optionele beschrijving schrijven.
Kies vervolgens hoe je de wijziging opslaat:
main-branchKlik op Commit changes en GitHub verwijdert het bestand en slaat de verwijdering op als een commit, net zoals
git rmdat via de command line doet.Bestanden verwijderen met Git-GUI-tools
Gebruik je een Git-GUI zoals GitHub Desktop, Sourcetree of Tower, dan is het proces ook eenvoudig:
Elke tool ziet er net anders uit, maar de workflow is vergelijkbaar: je volgt wijzigingen visueel en commit wanneer je klaar bent.
Best practices per platform
Een korte blik op hoe verwijderen werkt op verschillende platforms, en wanneer welke het handigst is:
Best practices voor bestanden verwijderen in Git
Bestanden verwijderen in Git lijkt simpel, maar één verkeerde stap kan je code breken. Dit zijn praktische tips die ik gebruik om zeker te zijn dat verwijderingen veilig en gecontroleerd gaan, vooral bij gedeelde of langlopende projecten.
Altijd verifiëren vóór je verwijdert
Neem even de tijd om te checken wat een bestand doet voordat je het verwijdert:
git statusuit om te zien of het is gestaged of gewijzigd.git log -- <filename>om de commithistorie te bekijken.Deze snelle check bespaart me later uren herstelwerk.
Gebruik atomische commits
Een atomische commit betekent één commit per logische wijziging.
Als ik bijvoorbeeld ongebruikte bestanden verwijder, commit ik alleen die verwijderingen, los van code-edits.
Waarom dit helpt:
git bisectwerken beter wanneer commits klein en gericht zijn.Voorzichtig samenwerken bij geschiedenis herschrijven
Geschiedenis herschrijven met tools zoals
git filter-reporaakt iedereen in je team. Om chaos te voorkomen:git push --forcevoorzichtig, want het herschrijft de remote geschiedenis.Gebruik --dry-run vóór destructieve commando’s
Test altijd eerst een commando dat bestanden verwijdert:
Dit laat zien wat er verwijderd zou worden zonder iets te verwijderen. Daarom zou je dit altijd moeten doen:
Combineer git rm --cached met .gitignore
Heb je per ongeluk iets gecommit dat niet in de repo hoort (zoals een configbestand of logs), los het dan in twee stappen op:
Dit vertelt Git te stoppen met het tracken van het bestand, maar laat het op je computer staan.
gitignore:Waarom dit helpt:
.env,.logofnode_modules) uit de repo.Git-randgevallen: stagen & lege mappen
Soms loopt bestanden verwijderen anders dan verwacht. Je staged per ongeluk het verkeerde bestand of je loopt tegen problemen met lege mappen aan.
Zo pak ik veelvoorkomende randgevallen aan.
Unstagen zonder je wijzigingen te verliezen
Stel, ik voer
git add .uit en stage per ongeluk een bestand dat ik niet wilde. Ik wil mijn wijzigingen niet kwijt—ik wil het alleen uit de staging halen.Om dat te fixen, voer ik uit:
Dit haalt het bestand uit de staging, maar laat de edits staan.
Om te bevestigen gebruik ik:
Nu zou het bestand als "modified" in plaats van "staged" moeten verschijnen.
Lege mappen in de repo houden
Standaard negeert Git lege mappen. Als ik een map zonder bestanden probeer te committen, slaat Git die over.
Maar soms wil ik die map in de repo houden voor toekomstige logs of uploads. De gebruikelijke oplossing is een placeholderbestand
.gitkeeptoevoegen.Zo doe je dat:
Dit maakt de map “niet-leeg”, zodat Git ‘m trackt.
Let op:
.gitkeepis geen ingebouwd Git-ding. Het is gewoon een conventie. Je kunt het bestand anders noemen, maar.gitkeeplaat anderen zien waar het voor is.Problemen oplossen bij bestanden verwijderen in Git
Hier zijn een paar veelvoorkomende problemen die ik tegenkom bij het verwijderen van bestanden in Git, en hoe je ze oplost.
Het bestand verschijnt nog steeds in de remote repository
Je hebt het bestand verwijderd en de wijziging gecommit, maar het staat nog op de remote. Misschien ben je vergeten te pushen.
Zorg dus dat je dit draait:
Controleer ook:
Problemen met submodules
Submodules zijn Git-repo’s binnen andere Git-repo’s. Ze gedragen zich niet als normale mappen.
Als je bestanden binnen een submodule verwijdert:
Wil je de submodule helemaal verwijderen:
.gitmodulesen.git/configDetached HEAD-toestand
In Git wijst
HEADmeestal naar de huidige branch. Maar soms wijst het naar een specifieke commit; dat heet een detached HEAD.Dit gebeurt als je:
Check je status:
Als je ziet:
Dan zit je niet op een branch en kunnen nieuwe wijzigingen verloren gaan als je wegschakelt.
Zo los je het op:
Heb je wijzigingen gemaakt die je wilt behouden, voer dan dit uit:
Dit zet je werk op een nieuwe branch en bewaart het.
Heb je al gecommit en wil je de wijzigingen later naar een andere branch verplaatsen, doe dan dit:
Heb je geen wijzigingen gemaakt en wil je gewoon uit de detached HEAD, voer dan dit uit:
Dat is alles. Je HEAD is weer vastgemaakt en alles is terug naar normaal.
Machtigingen- of statusfouten
Soms verwijdert Git een bestand niet, meestal op Windows. Dit kan gebeuren als:
Zo los je dit op:
Merge- of rebase-problemen
Als je fouten ziet zoals:
Dan zit je waarschijnlijk midden in een merge of rebase.
Om een rebase af te ronden na het oplossen van conflicten:
Om de rebase of merge volledig te annuleren:
Dit zet je repo terug zoals die was vóór de merge.
Wil je alle lokale wijzigingen weggooien en je working directory resetten?
Probeer dit:
Dit zet alle bestanden terug naar hun laatst gecommitteerde staat.
Tot slot
Als je bestanden verwijdert in Git, is het makkelijk om fouten te maken als je niet oplet. Een kleine misstap kan leiden tot grotere problemen: kapotte code, werkverlies of verwarring in je team. Neem daarom even de tijd om te dubbelchecken wat je doet.
Gebruik het juiste commando voor de situatie. Als je niet zeker weet wat iets doet, test het eerst met een dry run. En werk je met anderen, zorg dan dat iedereen op één lijn zit.
Git kan veel meer dan alleen bestanden verwijderen. Je kunt branches verwijderen, fouten herstellen met reset en revert, of precies zien wat er veranderde met git diff. Hoe meer je leert, hoe soepeler je workflow wordt.
Neem het stap voor stap. Zo word je hier goed in.