Bitbucket: Git тарыхынан папканы жок кылуу

Gitти Bitbucketте жайгаштырууда 2 ГБ катуу чектөө бар - бул ашып кетсе, репозиторийге окуу үчүн гана кире аласыз. Мунун алдын алуу үчүн, мисалы, чоң папкаларды же файлдарды өз милдеттериңизден артка кайтара аласыз. Бирок башка учурларда да (эгерде кирүү маалыматтары тарыхка кирсе же node_modules кайра өздөштүрүүгө өтүп кетсе) Гиттин тарыхын анын табиятына карама-каршы, ретроактивдүү түрдө манипуляциялашыңыз керек.


Bitbucket бул жөнүндө толук макала жазган. Кеп боюнча бүт нерсени карап чыгуу үчүн, алгач жаңы кампаны түзөбүз:

битбакеттин тарыхы таза

Андан кийин репозиторийди жергиликтүү машинанын бош папкасына көчүрөбүз:

6ab7686fc508ce87c52b10bb5d01ee51

Азыр биз кокусунан камтылган файлдар менен эки подпапка түзөбүз:

6ab7686fc508ce87c52b10bb5d01ee51

Биз азыр агайга түртүп жатабыз:

6ab7686fc508ce87c52b10bb5d01ee51

Азыр биз дээрлик Bitbucket боюнча 2 ГБ катуу чегине жеткен:

битбакеттин тарыхы таза

Биз муну жергиликтүү деңгээлде текшере алабыз ("size-pack" караңыз):

6ab7686fc508ce87c52b10bb5d01ee51

битбакеттин тарыхы таза

Эми милдет - "foo" ды репозиторийден көлөмүн эки эсе азайтуу үчүн алып салуу. Бул үчүн алгач учурдагы HEADди түзөтүп, папканы gitignore-го жазабыз:

6ab7686fc508ce87c52b10bb5d01ee51

Акыры, биз BFG Repo Cleaner жардамы менен папканы алып салабыз (BFG тутумдун талабы катары тутумга учурдагы JRE талап кылат):

6ab7686fc508ce87c52b10bb5d01ee51

Эми анын натыйжасын жергиликтүү деңгээлде көрө алабыз:

6ab7686fc508ce87c52b10bb5d01ee51

битбакеттин тарыхы таза

Бирок, Bitbucketте репозиторийдин көлөмү өзгөргөн жок, анткени таштанды чогултуучу алыстан иштетиле элек жана bitbucket ар бир түрткөн сайын "git gc" аткарбайт:

битбакеттин тарыхы таза

Муну колдоо дагы тастыктап турат:

битбакеттин тарыхы таза

Андыктан репозиторийде "git gc" кол менен иштетүү үчүн support@bitbucket.org дарегине түздөн-түз суроо-талап жөнөтүү керек. Кыска убакыттан кийин, муну колдоо тобу дагы жасады:

битбакеттин тарыхы таза

Эгерде сиз репозиторийди башка компьютерге "жаңы" жылдырсаңыз, анда дискте болгону 0,9 ГБ гана калат. Эгерде кимдир бирөө жергиликтүү деңгээлде 1,8 ГБ нускасын колдонсо, анда "git pull" жана андан кийин "git gc" жетиштүү болот.

Артка