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

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


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" жетиштүү болот.

Артка