Bitbucket: slet mappe fra Git-historikken

Der er en hård grænse på 2 GB, når du er vært for Git på Bitbucket - hvis dette overskrides, har du kun skrivebeskyttet adgang til depotet. For at forhindre dette, skal du for eksempel fjerne retrospektivt store mapper eller filer fra dine forpligtelser. Men også i andre tilfælde (hvis adgangsdata er indtastet i historikken eller node_moduler er glider over på master igen), skal du retrospektivt manipulere Gits historie i modsætning til dens natur.


Bitbucket har skrevet en detaljeret artikel om dette. For at gennemgå det hele i ét tilfælde opretter vi først et nyt depot:

bitbucket historie ren

Derefter klonede vi depotet i en tom mappe på den lokale maskine:

6ab7686fc508ce87c52b10bb5d01ee51

Nu opretter vi to undermapper med filer med tilfældigt indhold:

6ab7686fc508ce87c52b10bb5d01ee51

Vi presser nu på master:

6ab7686fc508ce87c52b10bb5d01ee51

Nu er vi næsten nået den hårde grænse på 2 GB på Bitbucket:

bitbucket historie ren

Vi kan også kontrollere dette lokalt (se "størrelse-pakke"):

6ab7686fc508ce87c52b10bb5d01ee51

bitbucket historie ren

Opgaven nu er at retroaktiv fjerne "foo" fra depotet for at halvere størrelsen. For at gøre dette redigerer vi først den aktuelle HEAD og skriver mappen i gitignore:

6ab7686fc508ce87c52b10bb5d01ee51

Endelig bruger vi BFG Repo Cleaner til at fjerne mappen (BFG kræver en aktuel JRE på systemet som et systemkrav):

6ab7686fc508ce87c52b10bb5d01ee51

Vi ser nu resultatet lokalt:

6ab7686fc508ce87c52b10bb5d01ee51

bitbucket historie ren

Dog har depotstørrelsen endnu ikke ændret sig på Bitbucket, fordi affaldsopsamleren endnu ikke er blevet udført fjernt, og bitbucket udfører ikke en "git gc" med hvert skub:

bitbucket historie ren

Support bekræfter også dette:

bitbucket historie ren

Så det er bedst at sende en anmodning direkte til support@bitbucket.org for manuelt at køre "git gc" i depotet. Efter kort tid gjorde supportteamet også dette:

bitbucket historie ren

Hvis du nu "frisk" trækker depotet til en anden computer, ender kun 0,9 GB på disken. Hvis nogen stadig har den 1,8 GB version tilgængelig lokalt, er en "git pull" efterfulgt af "git gc" tilstrækkelig.

Tilbage