Hur Git LFS fungerar: Översikt över Git Large File Storage

Utvecklingsteam runt om i världen använder Git för att hantera källkod. Och många använder Git LFS – Git Large File Storage – för att hantera och lagra stora filer. Här beskriver vi vad Git LFS gör och när det ska användas.

Kan Git hantera stora filer?

Git kan inte hantera stora filer på egen hand. Det är därför många Git-team lägger till Git LFS för att hantera stora filer i Git.

Vad är Git LFS (Git Large File Storage)?

Git LFS är ett Git-tillägg som används för att hantera stora filer och binära filer i ett separat Git-förråd.

De flesta projekt idag har både kod och binära tillgångar. Och att lagra stora binära filer i Git-arkiv kan vara en flaskhals för Git-användare.

Det är därför vissa Git-användare lägger till Git Large File Storage (LFS).

Hur fungerar Git LFS?

Git LFS använder pekare i stället för de faktiska filerna eller binära stora objekt (blobs).

Så istället för att skriva stora filer/blobs till ett Git-förråd skriver du en pekarfil. Och själva filerna/blobs skrivs till en separat server. Du kan till och med använda flera servrar i Git LFS.

Det är ganska enkelt att komma igång. Du laddar ner tillägget och konfigurerar dina filtyper.

Användning av Git LFS gör det möjligt att versionera stora filer (och hantera blobs) och samtidigt frigöra utrymme i Git repositories. Och Git LFS är ofta en lösning för att skjuta stora filer till GitHub.

Git-problem utöver LFS

Git har problem utöver Git LFS. Och säkerheten är ett stort problem. Native Git saknar säkerhet, och tilläggsalternativen för att säkra Git är inte bra. Ta reda på vad du bör göra åt Git-säkerheten i vårt white paper – How to Lock Down Git.

Lock Down Git

Bör jag använda Git LFS?

Du bör använda Git LFS om du har stora filer eller binära filer att lagra i Git-arkiv.

Det beror på att Git är decentraliserat. Så varje utvecklare har hela ändringshistoriken på sin dator. Och ändringar i stora binära filer gör att Git repositories växer med filens storlek varje gång filen ändras (och ändringen bekräftas). Det innebär att det kommer att ta evigheter att hämta filerna. Och om du gör det blir det svårt att versionera och sammanfoga binärfilerna.

Så, varje gång filerna växer, växer Git-förrådet. Och när Git-användare behöver hämta och klona ett arkiv skapar detta problem.

Git LFS skapades för att lösa dessa problem. Men det har egna problem…

När Git Large File Storage inte fungerar

Git LFS fungerar. Men teamen berättar ständigt för oss att det är svårt att hantera. Så även om Git i sig är gratis kan det leda till produktivitetskostnader.

Installation av Git LFS på varje server och arbetsstation (och/eller repo) tar tid. Det belastar också administratörer. När det väl är installerat finns det ingen synlighet och liten kontroll över det. Och om vissa utvecklare inte har Git LFS-tillägget? Då går det sönder.

Det krävs extra åtgärder för att underhålla Git Large File Storage med build runners, till exempel Jenkins. Det leder till extra tid – och extra komplexitet.

Alt detta kan leda till prestandaproblem.

Alternativ till Git LFS

Git LFS är inte det enda sättet att hantera stora filer i Git. Det finns alternativ.

Detta inkluderar andra lösningar med öppen källkod eller från tredje part, t.ex:

  • git-annex
  • git-bigfiles
  • git-fat
  • git-media
  • git-bigstore
  • git-sym

Men precis som Git LFS kan dessa alternativ för lagring av stora filer i Git skapa problem. Det finns ett bättre sätt att hantera stora filer och binära filer.

Den bästa versionskontrollen för stora binära filer: Helix Core

Dagens projekt är större, med fler filer och blandade tillgångar än någonsin tidigare. Git och Git LFS ensamma kan inte hantera detta. Men Helix Core kan det.

Helix Core – versionshanteringsprogram från Perforce – är det bästa alternativet för att hantera stora binära filer. Det beror på att lagring av stora filer är en inbyggd funktion, inte ett tillägg. Och den är skottsäker.

I Helix Core kan du lagra binärer tillsammans med din källkod. Faktum är att alla dina största filer – binära filer, källkod, konstfiler, videofiler, bilder, bibliotek och byggartefakter – kan leva tillsammans i ett enda arkiv. Utan att det fördröjer stora, distribuerade team.

Se själv varför Helix Core är det bästa verktyget för att hantera stora binära filer.

Hantera stora filer i Helix Core

Förresten, Perforce har Git också

Har du fortfarande team som behöver hantera stora filer i Git? Du kan ta in dem i din build pipeline med Perforce Git-verktyg – Helix4Git och Helix TeamHub.

Helix4Git är en Git-server inuti en Perforce-server. Helix TeamHub är en lösning för Git-kodhosting. Med dessa verktyg kan Git-team utnyttja hastigheten och prestandan hos Helix Core – samtidigt som de arbetar i Git.

Så du kan använda Helix4Git tillsammans med Helix Core för att föra in ditt Git-repositorium i din build pipeline. Helix4Git låter dina utvecklare fortfarande använda sina ursprungliga Git-verktyg. Men de får sina filer mycket snabbare.

Du får:

  • Snabbare CI/CD-byggprestanda.
  • Stöd för multi-repo-projekt, artefaktförråd och till och med ett Docker-containerregister.
  • Möjligheten att successivt lägga till noder.
  • Replikation och garanterat uppdaterat innehåll utan fördröjning, i stället för att kopiera.

Leave a Reply