Hur man lagrar stora filer i Git

0
163

Git, liksom tjänster som Github, är byggda och optimerade för lätta textbaserade kodfiler, och det är sällan man ser förvar som är större än några GB. Men det är ofta användbart att spåra stora filer och för att göra det enklare erbjuder Git filändelsen Large File Storage (LFS).

Hur Git Large File Storage (LFS) fungerar

Git har inte tekniskt sett en maximal filstorlek, men det börjar gå sönder när du börjar träffa en viss filstorlek. Github definierar detta maximum till 100 MB per förråd.

Denna mjuka gräns beror på hur Git lagrar data internt. Även om Git visar användarlistor över ändringar, kallade diffs, använder Git faktiskt en ögonblicksbildbaserad metod för att lagra data internt och använder det för att rekonstruera skillnaderna, snarare än tvärtom.

Detta är bra för små mängder data, men det betyder att varje gång en fil ändras måste en ögonblicksbild göras, och om filen är mycket stor kan den snabbt ta mycket plats. Git hanterar detta lite internt med “ packfiles, ” som kan göra lite skräpsamling, men problemet med att arbeta med stora filer kvarstår.

Så, en lösning som heter Git Large File Storage (LFS) gjordes. I grund och botten, istället för att lagra den faktiska filen i förvaret, lagrar Git LFS helt enkelt en pekare till var den filen faktiskt är. När din Git -klient vill klona ett arkiv eller betala filen, laddar den ner den från Git LFS istället.

Annonsering

Det betyder att du inte längre behöver ladda ner alla versionerade objekt bara för att klona repo. LFS gör det mycket snabbare att få igång förvaret eftersom Git bara bryr sig om pekaren, som är liten, och bara hämtar den data den behöver.

Den största nackdelen är att du nu inte kan använda paketfiler, vilket betyder att du kommer att behöva extra lagringsutrymme för varje kopia av en fil. Men eftersom LFS låter dig ha ett massivt förvar med optimala klontider påverkar detta inte utvecklarupplevelsen.

Var kan du använda Git LFS?

För att använda den behöver du en server som är konfigurerad för att använda Git LFS. Det är bara en förlängning av Git, så du behöver inte installera någon extra programvara eller ställa in servrar för att hantera datalagring.

Github har stöd för Git LFS, men tillåter bara 10 GB per förvar. Detta gäller såväl normala repor som LFS -repor. Det är dock ganska enkelt att köpa mer data från Inställningar & gt; Fakturering och 50 GB kostar bara 4,20 $ extra i månaden:

< p> Du måste också betala för bandbredd, eftersom uppdatering av stora filer gör en kopia av filen och måste skicka det hela.

Om du skulle vilja vara värd för särskilt stora förvar och vill göra det på din egen hårdvara, rekommenderar vi att du använder Gitlab som är värd för dig själv. Du kan läsa vår guide om hur du konfigurerar en personlig Gitlab -instans för att lära dig mer.

RELATERAT: Så här konfigurerar du en personlig Gitlab -server

Installera och använda Git LFS

Du måste ladda ner och installera Git LFS från deras webbplats.

Annonsering

Öppna sedan Git eller Git Bash i Windows och kör kommandot install för att verifiera att det fungerar:

git lfs install

Git LFS fungerar lite separat från Git själv. Det spårar inte filer automatiskt över en viss storlek; du måste lägga till filer manuellt till Git LFS för att börja använda det. Du kan använda jokerteckensyntax för detta:

git lfs track “*.dat”

Du kan använda ls-filer och status för att visa tillståndet för själva Git LFS-delsystemet:

git lfs ls- filer git lfs status

Migrerar till Git LFS

Om du kommer från ett befintligt Git-arkiv eller av misstag begått något utan att först spåra i Git LFS måste du använda migreringsverktyget för att flytta data till LFS.

Exempelvis importera alla befintliga filer som matchar ett jokertecken:

git lfs migrera import – include = “*. mp4”

Eller bara skicka allt till LFS:

git lfs migrerar import -allt

Du kan behöva göra git push –force för att skriva över filialhistorik.