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

  • HER0R

    HER0R

    16 Aralık 2007
  • katherine gomez

    katherine go

    1 Aralık 2011
  • VideoGamePervert

    VideoGamePer

    30 AĞUSTOS 2008