SORU
22 HAZİRAN 2009, PAZARTESİ


Neden git benim depo bu kadar büyük?

145 MİLYON = ./nesneleri/pack/ git

Her farklılıkların boyutları kadar eklemek için bir komut tamamlama ve geriye doğru her dalın ucundan bile gitmeden önce taahhüt yazdım. Dallar arasında dalları ve ortak bir tarih boyunca aynı dosyaları için muhasebe olmadan sıkıştırma olmadan ve hangi 129MB, anlıyorum.

Git çok daha küçük depo çok beklediğiniz kadar dikkate tüm bu şeyler alır. Yüzden .çok büyük gıt?

Yaptım:

git fsck --full
git gc --prune=today --aggressive
git repack

Kaç/iptalleri hakkında cevap vermek için, her 40 dosyaları hakkında 19 şubesi var. 287 kullanarak tamamlar buldu

git log --oneline --all|wc -l

Bu konuda bilgi depolamak için megabayt 10 alıyor olmamalıdır.

CEVAP
15 Ocak 2013, Salı


Kullandığım bazı kodlar:

git-fatfiles:

git rev-list --all --objects | \
    sed -n $(git rev-list --objects --all | \
    cut -f1 -d' ' | \
    git cat-file --batch-check | \
    grep blob | \
    sort -n -k 3 | \
    tail -n40 | \
    while read hash type size; do 
         echo -n "-e s/$hash/$size/p ";
    done) | \
    sort -n -k1
...
89076 images/screenshots/properties.png
103472 images/screenshots/signals.png
9434202 video/parasite-intro.avi

git-yok (video/parasite.avi):

git filter-branch -f  --index-filter \
    'git rm --force --cached --ignore-unmatch video/parasite-intro.avi' \
     -- --all
rm -Rf .git/refs/original && \
    git reflog expire --expire=now --all && \
    git gc --aggressive && \
    git prune

Not: ikinci komut tamamen (reflogs tüm bilgileri de dahil olmak üzere) Git info kaldırmak için tasarlanmıştır. Dikkatli kullanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • booba1234

    booba1234

    22 Temmuz 2006
  • movies95

    movies95

    27 Kasım 2006
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006