SORU
9 NİSAN 2012, PAZARTESİ


Klasörü ve içindekileri çıkartın git/GitHub'un tarihi

GitHub Hesabım üzerinde bir depo üzerinde çalışıyordum ve bu şans eseri buldum sorunu.

  • Node.js birkaç etmesinin önünü bir paket yüklü bir klasör ile proje
  • Paketler 1* *klasör vardı
  • Git deposu için klasör eklendi ve github (o zamanlar etmesinin önünü parçası düşünmüyordum) kodu itti
  • Gerçekten bu klasör kod parçası olmaya ihtiyacın olmadığını fark etti
  • Bu klasör silinmiş, itti onu

Bu örnek, toplam gıt repo büyüklüğü civarında6 MBgerçek kod (tüm klasör hariç) sadece nerede olduğunu300 KB.

Şimdi ne arıyorum sonunda bir şekilde kurtulmak için detayları bu paket klasöründen gıt tarihinde Yani eğer birinin klonu, gerek yok indir 6 MB değerinde tarihi tek gerçek dosyaları elde edilecek gibi son commit olur 300 KB.

Bunun için Olası çözümler aradım ve bu 2 yöntem denedim

Özetle, komut dosyasını çalıştırdıktan sonra Klasör kurtuldum gösterdiği yere işe yaradı gibi ve 50 farklı işliyor değiştirilmiş gösterdi sonra o geldi. Ama bana bu kod itme izin vermedi. Onu itmeye çalıştım, Branch up to date ama 50 tamamlar gösterdi git status üzerine değiştirildi " dedi. Diğer 2 yöntem de işe yaramadı.

Benim localhost üzerinde repo boyutunu kontrol ettiğimde bu klasör geçmişi, kurtuldum gösterdi olsa bile, hala 6 MB civarıydı şimdi. (Ben de refs/originalklasör silinmiş ama repo boyutu değişir) yoktu.

Ne olduğumu seyir için açıklık, varsa bir şekilde kurtulmak için sadece tamamlama tarihi belirli olan tek şey bence oldu) ama aynı zamanda bu dosyaları gıt olduğunu varsayarak tutmak istiyor için geri alma.

Diyelim ki bir çözüm sundu bu ve uygulanması benim localhost ama malesef yeniden o GitHub repo, mümkün müdür klon olan repo, geri alma ilk taahhüt gerçekleştirmek hile ve ıkın (veya demek şimdi bu git yine de bir tarihin tüm bu teslimleri? - aka. 6 MB).

Benim nihai hedef işte temelde bul en iyi yolu kurtulmak için klasör içeriğini çocuğuyum, böylece bir kullanıcı yok indir 6 MB değerinde şeyler hala belki diğer işleyen hiç dokunmadım modülleri klasör (hemen hemen hepsi) git tarih oldu.

Bunu nasıl yapabilirim?

CEVAP
24 Temmuz 2013, ÇARŞAMBA


Buraya kopyala-yapıştır kodu için:

Bu tarihten node_modules kaldırmak olan bir örnektir

git filter-branch --tree-filter 'rm -rf node_modules' --prune-empty HEAD
echo node_modules/ >> .gitignore
git add .gitignore
git commit -m 'Removing node_modules from git history'
git gc

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • TVNorge

    TVNorge

    5 EKİM 2006