Vedlikehold og opprydding i repositories
Lær kommandoer som `git gc` og `git prune` for å rydde opp i og optimalisere ditt lokale Git-repository.
Vedlikehold og opprydding i repositories er en gratis leksjon i Profesjonell arbeidsflyt med Git og GitHub på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Profesjonell arbeidsflyt med Git og GitHub, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Profesjonell arbeidsflyt med Git og GitHub inneholder totalt 4 leksjoner.
Velkommen til Git-vedlikehold
Over tid kan lokale Git-repositorier samle opp unødvendige filer og bli mindre effektive. Tenk på det som et rotete rom!
I denne leksjonen lærer De å rydde opp i og optimalisere Git-repositoriene ved hjelp av kraftige kommandoer som git gc og git prune. Dette holder prosjektene i god drift.
Gits objektlager forklart
La oss først forstå hvordan Git lagrer data. Git lagrer prosjektets historikk som en serie «objekter»:
- Blobs: Filinnhold
- Trees: Kataloger og innholdet i dem
- Commits: Øyeblikksbilder av prosjektet på et bestemt tidspunkt
- Tags: Pekere til bestemte commiter
Disse objektene kan lagres som «løse objekter» eller komprimeres til «packfiler» for bedre effektivitet.
Introduserer `git gc` (søppelinnsamling)
Kommandoen git gc står for «garbage collect». Det er Gits innebygde verktøy for å rydde opp i og optimalisere repositoriet.
De viktigste oppgavene omfatter:
- Pakke løse objekter: Komprimere enkeltobjekter til samlede packfiler.
- Fjerne utilgjengelige objekter: Slette objekter som ikke lenger refereres til av en commit, gren eller tag (etter en viss alder).
- Fjerne gamle packfiler: Kvitte seg med utdaterte komprimerte objektfiler.
Denne prosessen gjør repositoriet mindre og raskere.
Kjøre `git gc` (generell bruk)
De kan kjøre git gc manuelt når som helst. Git kjører den også automatisk i bakgrunnen når De utfører bestemte operasjoner, som pushing eller henting.
Det er som regel trygt å kjøre kommandoen, men det er god praksis å kontrollere at De ikke har ukommittet arbeid som De kan få behov for å gjenopprette før en større opprydding.
Prøv å kjøre den i terminalen:
git gcForstå utdataene fra `git gc`
Når De kjører git gc, vil De se utdata som ligner på dette:
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.Dette viser at Git arbeider med å pakke objekter, skrive nye packfiler og fjerne (slette) gamle, utilgjengelige objekter. Tallene varierer avhengig av tilstanden til repositoriet.
Fokuser på `git prune`
Mens git gc håndterer mange oppryddingsoppgaver, brukes git prune spesifikt til å fjerne «dangling»- eller «unreachable»-objekter.
- Dangling-objekter: Dette er objekter som finnes i repositoriet, men som ikke lenger refereres til av noen commit, gren eller tag, og som heller ikke er en del av en pakkefil.
- Unreachable-objekter: Dette ligner på dangling-objekter, men er et bredere begrep. De kan oppstå av flere grunner, for eksempel etter en rebase eller reset som skriver om historikken.
git prune sletter disse objektene hvis de er eldre enn standard utløpstid (vanligvis to uker).
Kjøre `git prune` direkte
Vanligvis trenger De ikke å kjøre git prune direkte, siden git gc kaller den. De kan imidlertid bruke den til mer målrettet opprydding.
Hvis De vil se hva git prune ville gjort uten faktisk å slette noe, bruker De alternativet --dry-run:
git prune --dry-runOpprydding med utløpstid
Som standard fjerner git prune (og oppryddingstrinnet i git gc) bare objekter som er eldre enn to uker. De kan overstyre dette med alternativet --expire.
Dette er nyttig hvis De vil rydde opp mer aggressivt i dangling-objekter som ble opprettet svært nylig, for eksempel etter en eksperimentell rebase som De er sikker på at De ikke trenger å tilbakestille.
For eksempel for å rydde opp i objekter som er eldre enn én dag:
git prune --expire=1.daySkillet fra `git reflog expire`
Det er viktig å ikke forveksle git prune med git reflog expire. Selv om de begge er knyttet til opprydding, har de ulike formål:
git prune: Sletter faktiske Git-objekter (blober, trær og commiter) fra objektdatabasen.git reflog expire: Rydder opp i oppføringer i Deres reflog (en lokal historikk over hvor HEAD har vært), slik at det blir vanskeligere å finne enkelte commiter, men objektene slettes ikke.
Vær alltid forsiktig når De endrer historikken eller kjører oppryddingskommandoer!
Kontroll av vedlikehold
Hvilket av alternativene nedenfor beskriver best hovedformålet med git gc?
Oppsummering og neste steg
Gratulerer! De har lært hvordan De kan holde Git-repositoriene ryddige og effektive.
git gc: Alt-i-ett-kommandoen for garbage collection, pakking av objekter og pruning.git prune: Retter seg spesifikt mot og fjerner unreachable- og dangling-objekter som er eldre enn en angitt utløpstid.
Regelmessig vedlikehold bidrar til at Git-arbeidsflyten forblir smidig, og at repositoriene ikke bruker unødvendig mye diskplass. Fortsett det gode arbeidet!
Lær deg Profesjonell arbeidsflyt med Git og GitHub med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Vedlikehold og opprydding i repositories» gratis?
Ja – hele teksten i «Vedlikehold og opprydding i repositories» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Profesjonell arbeidsflyt med Git og GitHub-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Profesjonell arbeidsflyt med Git og GitHub inneholder totalt 4 leksjoner.
Hva lærer jeg i «Vedlikehold og opprydding i repositories»?
Lær kommandoer som `git gc` og `git prune` for å rydde opp i og optimalisere ditt lokale Git-repository. Du øver på Profesjonell arbeidsflyt med Git og GitHub med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Profesjonell arbeidsflyt med Git og GitHub?
Ingen tidligere erfaring er nødvendig. Profesjonell arbeidsflyt med Git og GitHub på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Vedlikehold og opprydding i repositories»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Profesjonell arbeidsflyt med Git og GitHub-leksjonen?
Ja. Alle Profesjonell arbeidsflyt med Git og GitHub-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Git Reflog og gjenoppretting av historikk
- Git Bisect for feilsøking
- Vedlikehold og opprydding i repositories
- Omskrive historikken med git filter-repo