Semasa mengehoskan Git di Bitbucket, terdapat had 2 GB yang sukar - jika melebihi, anda hanya mempunyai akses baca sahaja ke repositori. Sebagai contoh, untuk mengelakkan ini, anda boleh membuang folder atau fail besar dari komit anda secara retrospektif. Tetapi juga dalam kes lain (jika data akses telah memasuki sejarah atau node_modules telah merosot kembali), anda harus memanipulasi sejarah Git secara retrospektif, bertentangan dengan sifatnya.
Bitbucket telah menulis artikel terperinci mengenai perkara ini sendiri. Untuk menjalankan semuanya dalam kes, kami mula-mula membuat repositori baru:
Kemudian kami mengkloning repositori ke folder kosong di mesin tempatan:
6ab7686fc508ce87c52b10bb5d01ee51
Sekarang kita membuat dua sub-folder dengan fail kandungan rawak:
6ab7686fc508ce87c52b10bb5d01ee51
Kami sekarang mendorong tuan:
6ab7686fc508ce87c52b10bb5d01ee51
Sekarang kami hampir mencapai had sukar 2 GB di Bitbucket:
Kami juga dapat memeriksa ini secara tempatan (lihat "paket ukuran"):
6ab7686fc508ce87c52b10bb5d01ee51
Tugasnya sekarang adalah secara retroaktif menghapus "foo" dari repositori untuk mengurangkan separuh ukurannya. Untuk melakukan ini, pertama-tama kita mengedit HEAD semasa dan menulis folder di gitignore:
6ab7686fc508ce87c52b10bb5d01ee51
Akhirnya, kami mengeluarkan folder dengan bantuan BFG Repo Cleaner (BFG memerlukan JRE semasa pada sistem sebagai keperluan sistem):
6ab7686fc508ce87c52b10bb5d01ee51
Kita kini dapat melihat hasilnya secara tempatan:
6ab7686fc508ce87c52b10bb5d01ee51
Tetapi pada Bitbucket, ukuran repositori belum berubah, kerana pengumpul sampah belum dilaksanakan dari jauh dan bitbucket tidak menjalankan "git gc" dengan setiap tolakan:
Ini juga disahkan oleh sokongan:
Oleh itu, lebih baik anda menghantar permintaan terus ke support@bitbucket.org untuk menjalankan "git gc" secara manual di repositori. Setelah sekian lama, ini juga dilakukan oleh pasukan sokongan:
Sekiranya anda "baru" memindahkan repositori ke komputer lain, hanya 0.9 GB akan berakhir pada cakera. Sekiranya seseorang mempunyai versi 1.8 GB yang tersedia secara tempatan, "git pull" diikuti oleh "git gc" sudah mencukupi.