Bitbucket: Padamkan folder dari sejarah Git

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:

sejarah bitbucket bersih

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:

sejarah bitbucket bersih

Kami juga dapat memeriksa ini secara tempatan (lihat "paket ukuran"):

6ab7686fc508ce87c52b10bb5d01ee51

sejarah bitbucket bersih

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

sejarah bitbucket bersih

Tetapi pada Bitbucket, ukuran repositori belum berubah, kerana pengumpul sampah belum dilaksanakan dari jauh dan bitbucket tidak menjalankan "git gc" dengan setiap tolakan:

sejarah bitbucket bersih

Ini juga disahkan oleh sokongan:

sejarah bitbucket bersih

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:

sejarah bitbucket bersih

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.

Belakang