هنگام میزبانی Git در Bitbucket محدودیت 2 گیگابایتی وجود دارد - اگر از این مقدار بیشتر شود ، فقط به مخزن دسترسی فقط خواندنی دارید. برای جلوگیری از این امر ، می توانید برای مثال ، به صورت گذشته نگر ، پوشه ها یا پرونده های بزرگ را از تعهدات خود حذف کنید. اما همچنین در موارد دیگر (اگر داده های دسترسی به تاریخچه وارد شده اند یا node_modules دوباره برای کارشناسی ارشد لغزیده اند) باید برخلاف ماهیت آن ، تاریخچه Git را به صورت گذشته نگر دستکاری کنید.
Bitbucket مقاله مفصلی در این باره نوشته است. برای اجرای کل ماجرا روی یک پرونده ، ابتدا یک مخزن جدید ایجاد می کنیم:
سپس ما مخزن را به یک پوشه خالی در ماشین محلی شبیه سازی می کنیم:
6ab7686fc508ce87c52b10bb5d01ee51
اکنون دو زیر پوشه با پرونده هایی با محتوای تصادفی ایجاد می کنیم:
6ab7686fc508ce87c52b10bb5d01ee51
ما اکنون به استاد فشار می آوریم:
6ab7686fc508ce87c52b10bb5d01ee51
اکنون تقریباً به حد سخت 2 گیگابایتی در Bitbucket رسیده ایم:
ما همچنین می توانیم این را به صورت محلی بررسی کنیم (به "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" کافی است.