Professionellt arbetsflöde med Git och GitHub · Lektion

Underhåll och städning av repositories

Lär dig kommandon som `git gc` och `git prune` för att rensa upp och optimera ditt lokala Git-repository.

Lektion 3 av 411 steg

Underhåll och städning av repositories är en gratis lektion i Professionellt arbetsflöde med Git och GitHub på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Professionellt arbetsflöde med Git och GitHub, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Professionellt arbetsflöde med Git och GitHub innehåller totalt 4 lektioner.

Välkommen till städning av Git

Med tiden kan dina lokala Git-repositoryn samla på sig onödiga filer och bli mindre effektiva. Tänk på det som ett stökigt rum!

I den här lektionen lär vi oss att rensa upp och optimera dina Git-repositoryn med kraftfulla kommandon som git gc och git prune. Det hjälper projekten att fungera smidigt.

Så fungerar Gits objektlager

Först ska vi förstå hur Git lagrar data. Git sparar projektets historik som en serie ”objekt”:

  • Blobs: Filinnehåll
  • Trees: Kataloger och deras innehåll
  • Commits: Ögonblicksbilder av projektet vid en viss tidpunkt
  • Tags: Pekare till specifika commits

Dessa objekt kan lagras som ”lösa objekt” eller komprimeras till ”packfiles” för bättre effektivitet.

Introduktion till `git gc` (Garbage Collect)

Kommandot git gc står för ”garbage collect”. Det är Gits inbyggda verktyg för att rensa upp och optimera ditt repository.

De viktigaste uppgifterna omfattar:

  • Packa lösa objekt: Komprimera enskilda objekt till gemensamma packfiles.
  • Rensa objekt som inte kan nås: Ta bort objekt som inte längre refereras av någon commit, branch eller tagg (efter en viss ålder).
  • Ta bort gamla packfiles: Radera föråldrade komprimerade objektfiler.

Processen gör ditt repository mindre och snabbare.

Köra `git gc` (allmän användning)

Du kan köra git gc manuellt när som helst. Git kör det också automatiskt i bakgrunden när du utför vissa åtgärder, som att pusha eller hämta.

Det är i allmänhet säkert att köra, men det är bra att se till att du inte har ocommittat arbete som du kan behöva återställa innan en större rensning.

Prova att köra det i terminalen:

git gc

Förstå resultatet från `git gc`

När du kör git gc visas utdata som liknar detta:

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.

Detta visar hur Git arbetar med att packa objekt, skriva nya packfiles och rensa bort gamla objekt som inte kan nås. Siffrorna varierar beroende på repositoryts tillstånd.

Fokusera på `git prune`

Medan git gc hanterar många rensningsuppgifter fokuserar git prune specifikt på att ta bort objekt som är ”hängande” eller ”oåtkomliga”.

  • Hängande objekt: Det här är objekt som finns i ert repository men som inte längre refereras av någon commit, branch eller tagg och som inte heller ingår i någon packfil.
  • Oåtkomliga objekt: Ett liknande men bredare begrepp än hängande objekt. De kan finnas av olika orsaker, till exempel efter en rebase eller reset som skriver om historiken.

git prune tar bort dessa objekt om de är äldre än den förvalda utgångstiden, vanligtvis två veckor.

Köra `git prune` direkt

Vanligtvis behöver ni inte köra git prune direkt, eftersom git gc anropar det. Ni kan dock använda det för en mer riktad rensning.

Om ni vill se vad git prune skulle göra utan att faktiskt ta bort något använder ni alternativet --dry-run:

git prune --dry-run

Rensa med utgångstid

Som standard tar git prune (och rensningssteget i git gc) endast bort objekt som är äldre än två veckor. Ni kan åsidosätta detta med alternativet --expire.

Detta är användbart om ni vill rensa bort hängande objekt mer aggressivt, även sådana som skapades alldeles nyligen, till exempel efter en experimentell rebase som ni är säkra på att ni inte behöver återställa.

Om ni till exempel vill rensa bort objekt som är äldre än en dag:

git prune --expire=1.day

Skilja från `git reflog expire`

Det är viktigt att inte förväxla git prune med git reflog expire. Även om båda hör samman med rensning har de olika syften:

  • git prune: Tar bort faktiska Git-objekt (blobs, träd och commits) från objektdatabasen.
  • git reflog expire: Rensar poster i er reflog (en lokal historik över var HEAD har befunnit sig), vilket gör vissa commits svårare att hitta, men objekten tas inte bort.

Var alltid försiktiga när ni ändrar historiken eller kör rensningskommandon!

Kontroll av underhåll

Vilket av följande beskriver bäst den primära funktionen hos git gc?

Sammanfattning och nästa steg

Gratulerar! Ni har lärt er hur ni håller era Git-repositoryn välordnade och effektiva.

  • git gc: Kommandot som samlar skräpinsamling, paketering av objekt och rensning.
  • git prune: Riktar specifikt in sig på och tar bort oåtkomliga, hängande objekt som är äldre än en angiven utgångstid.

Regelbundet underhåll bidrar till att ert Git-arbetsflöde förblir smidigt och att era repositoryn inte tar upp onödigt mycket diskutrymme. Fortsätt så!

Gratis att börja

Lär dig Professionellt arbetsflöde med Git och GitHub med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Underhåll och städning av repositories” gratis?

Ja – hela texten till ”Underhåll och städning av repositories” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Professionellt arbetsflöde med Git och GitHub, kan Ni uppgradera till CoddyKit PRO. Kursen i Professionellt arbetsflöde med Git och GitHub innehåller totalt 4 lektioner.

Vad lär jag mig i ”Underhåll och städning av repositories”?

Lär dig kommandon som `git gc` och `git prune` för att rensa upp och optimera ditt lokala Git-repository. Ni övar på Professionellt arbetsflöde med Git och GitHub med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Professionellt arbetsflöde med Git och GitHub?

Du behöver inga förkunskaper. Utbildningen i Professionellt arbetsflöde med Git och GitHub på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Underhåll och städning av repositories”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Professionellt arbetsflöde med Git och GitHub-lektionen?

Ja. Varje Professionellt arbetsflöde med Git och GitHub-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Git Reflog och återställning av historik
  2. Git Bisect för felsökning
  3. Underhåll och städning av repositories
  4. Skriva om historiken med git filter-repo
← Tillbaka till Professionellt arbetsflöde med Git och GitHub