Repositoryonderhoud en opruimen
Leer opdrachten zoals `git gc` en `git prune` te gebruiken om uw lokale Git-repository op te schonen en te optimaliseren.
Repositoryonderhoud en opruimen is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
Welkom bij Git-onderhoud
Na verloop van tijd kunnen je lokale Git-repositories onnodige bestanden verzamelen en minder efficiënt worden. Zie het als een rommelige kamer!
In deze les leer je hoe je je Git-repositories opruimt en optimaliseert met krachtige opdrachten zoals git gc en git prune. Zo blijven je projecten soepel werken.
De objectopslag van Git uitgelegd
Laten we eerst begrijpen hoe Git gegevens opslaat. Git bewaart de geschiedenis van je project als een reeks 'objecten':
- Blobs: Bestandsinhoud
- Trees: Mappen en hun inhoud
- Commits: Momentopnamen van je project op een bepaald moment
- Tags: Verwijzingen naar specifieke commits
Deze objecten kunnen worden opgeslagen als 'losse objecten' of voor efficiëntie worden gecomprimeerd in 'packbestanden'.
`git gc` introduceren (garbage collection)
De opdracht git gc staat voor 'garbage collect'. Het is het ingebouwde hulpmiddel van Git om je repository op te ruimen en te optimaliseren.
De belangrijkste taken zijn:
- Losse objecten inpakken: Afzonderlijke objecten comprimeren tot afzonderlijke packbestanden.
- Onbereikbare objecten opruimen: Objecten verwijderen waarnaar na een bepaalde leeftijd niet meer wordt verwezen door een commit, branch of tag.
- Oude packbestanden verwijderen: Verouderde gecomprimeerde objectbestanden verwijderen.
Dit proces maakt je repository kleiner en sneller.
`git gc` uitvoeren (algemeen gebruik)
Je kunt git gc op elk moment handmatig uitvoeren. Git voert deze opdracht ook automatisch op de achtergrond uit wanneer je bepaalde bewerkingen uitvoert, zoals pushen of ophalen.
Het is over het algemeen veilig om de opdracht uit te voeren, maar het is verstandig om te controleren of je geen niet-gecommitte werk hebt dat je vóór een grote opruimactie mogelijk nog moet herstellen.
Probeer de opdracht uit te voeren in je terminal:
git gcDe uitvoer van `git gc` begrijpen
Wanneer je git gc uitvoert, zie je uitvoer die hierop lijkt:
Counting objects: 1234, done.
Compressing objects: 100% (987/987), done.
Writing objects: 100% (1234/1234), done.
Total 1234 (delta 567), reused 0 (delta 0)
Removing duplicate objects: 100% (256/256), done.
Pruning objects: 100% (123/123), done.Hieraan zie je dat Git objecten inpakt, nieuwe packbestanden schrijft en oude, onbereikbare objecten opruimt (verwijdert). De aantallen verschillen afhankelijk van de toestand van je repository.
Focus op `git prune`
Hoewel git gc veel opruimtaken uitvoert, richt git prune zich specifiek op het verwijderen van 'zwevende' of 'onbereikbare' objecten.
- Zwevende objecten: Dit zijn objecten die in je opslagruimte bestaan, maar waarnaar niet langer wordt verwezen door een commit, branch of tag, en die ook geen deel uitmaken van een packbestand.
- Onbereikbare objecten: Dit lijkt op zwevend, maar is een bredere term. Ze kunnen om verschillende redenen ontstaan, bijvoorbeeld na een rebase of reset waarbij de geschiedenis wordt herschreven.
git prune verwijdert deze objecten als ze ouder zijn dan een standaardvervaltermijn (meestal 2 weken).
`git prune` rechtstreeks uitvoeren
Je hoeft git prune meestal niet rechtstreeks uit te voeren, omdat git gc het aanroept. Je kunt het echter gebruiken om gerichter op te ruimen.
Gebruik de optie --dry-run om te zien wat git prune zou doen zonder daadwerkelijk iets te verwijderen:
git prune --dry-runOpschonen met een vervaldatum
Standaard verwijdert git prune (en de opruimstap van git gc) alleen objecten die ouder zijn dan twee weken. Je kunt dit overschrijven met de optie --expire.
Dit is handig als je zwevende objecten die pas zeer recent zijn gemaakt agressief wilt opruimen, bijvoorbeeld na een experimentele rebase waarvan je zeker weet dat je die niet hoeft terug te draaien.
Om bijvoorbeeld objecten te verwijderen die ouder zijn dan 1 dag:
git prune --expire=1.dayVerschil met `git reflog expire`
Het is belangrijk om git prune niet te verwarren met git reflog expire. Hoewel ze allebei met opruimen te maken hebben, dienen ze verschillende doelen:
git prune: Verwijdert daadwerkelijke Git-objecten (blobs, trees en commits) uit de objectdatabase.git reflog expire: Ruimt vermeldingen in je reflog op (een lokale geschiedenis van de plaatsen waar je HEAD is geweest), waardoor bepaalde commits moeilijker te vinden zijn, maar de objecten zelf niet worden verwijderd.
Wees altijd voorzichtig bij het wijzigen van de geschiedenis of het uitvoeren van opruimopdrachten!
Controle van het onderhoud
Welke van de volgende opties beschrijft het hoofddoel van git gc het best?
Samenvatting en volgende stappen
Gefeliciteerd! Je hebt geleerd hoe je je Git-opslagruimten netjes en efficiënt houdt.
git gc: De alles-in-éénopdracht voor garbagecollection, het inpakken van objecten en het opschonen.git prune: Richt zich specifiek op het vinden en verwijderen van onbereikbare, zwevende objecten die ouder zijn dan een ingestelde vervaldatum.
Regelmatig onderhoud helpt ervoor te zorgen dat je Git-werkwijze soepel blijft en je opslagruimten niet buitensporig veel schijfruimte gebruiken. Goed bezig!
Leer DevOps-bootcamp met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 142
- Lessen
- 568
Veelgestelde vragen
Is de les “Repositoryonderhoud en opruimen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Repositoryonderhoud en opruimen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
Wat leer ik in “Repositoryonderhoud en opruimen”?
Leer opdrachten zoals `git gc` en `git prune` te gebruiken om uw lokale Git-repository op te schonen en te optimaliseren. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?
Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Repositoryonderhoud en opruimen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?
Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Git Reflog en geschiedenis herstellen
- Git Bisect voor debugging
- Repositoryonderhoud en opruimen
- Geschiedenis herschrijven met git filter-repo