Bitbucket: Klasörü Git geçmişinden silin

Git'i Bitbucket'ta barındırırken, 2 GB'lık sabit bir sınır vardır - bu aşılırsa, depoya yalnızca salt okunur erişiminiz olur. Bunu önlemek için, örneğin, geriye dönük olarak büyük klasörleri veya dosyaları taahhütlerinizden kaldırabilirsiniz. Ancak başka durumlarda da (erişim verileri geçmişe girdiyse veya node_modules ana haline döndüyse), Git'in geçmişini doğasının tersine geriye dönük olarak değiştirmelisiniz.


Bitbucket bununla ilgili ayrıntılı bir makale yazdı. Her şeyi bir vaka üzerinde çalıştırmak için önce yeni bir depo oluşturuyoruz:

bitbucket geçmişi temiz

Ardından depoyu yerel makinedeki boş bir klasöre klonlarız:

6ab7686fc508ce87c52b10bb5d01ee51

Şimdi rastgele içerikli dosyalar içeren iki alt klasör oluşturuyoruz:

6ab7686fc508ce87c52b10bb5d01ee51

Şimdi ustayı zorluyoruz:

6ab7686fc508ce87c52b10bb5d01ee51

Şimdi Bitbucket'ta neredeyse 2 GB'lık kesin sınıra ulaştık:

bitbucket geçmişi temiz

Bunu yerel olarak da kontrol edebiliriz (bkz. "Beden paketi"):

6ab7686fc508ce87c52b10bb5d01ee51

bitbucket geçmişi temiz

Şimdi görev, boyutunu yarıya indirmek için "foo" yu depodan geriye dönük olarak kaldırmaktır. Bunu yapmak için önce mevcut HEAD'i düzenleyip klasörü gitignore'a yazıyoruz:

6ab7686fc508ce87c52b10bb5d01ee51

Son olarak, klasörü BFG Repo Cleaner yardımıyla kaldırıyoruz (BFG, sistem gereksinimi olarak sistemde güncel bir JRE gerektirir):

6ab7686fc508ce87c52b10bb5d01ee51

Artık sonucu yerel olarak görebiliriz:

6ab7686fc508ce87c52b10bb5d01ee51

bitbucket geçmişi temiz

Ancak, çöp toplayıcı henüz uzaktan çalıştırılmadığından ve bitbucket her itmede bir "git gc" gerçekleştirmediğinden Bitbucket'ta depo boyutu değişmemiştir:

bitbucket geçmişi temiz

Bu aynı zamanda destek tarafından da onaylandı:

bitbucket geçmişi temiz

Bu nedenle, depoda "git gc" yi manuel olarak çalıştırmak için doğrudan support@bitbucket.org adresine bir istek göndermek en iyisidir. Kısa bir süre sonra bu da destek ekibi tarafından yapıldı.:

bitbucket geçmişi temiz

Depoyu başka bir bilgisayara "yeni" taşırsanız, diskte yalnızca 0,9 GB bitecektir. Birinin 1.8 GB sürümü yerel olarak mevcutsa, "git pull" ve ardından "git gc" yeterlidir.

Geri