SORU
6 NİSAN 2011, ÇARŞAMBA


Tamamen Gıt repo dosyaları kaldırmak ve GitHub uzak

Ben yanlışlıkla resim ve kararlı bir klasör eklendi. Sonra bir daha taahhüt yaptım. Sonra bu dosyaları git rm -f ./images kullanarak çıkardım ve tekrar işledi.

Şimdi, çok daha dalında tamamlar yaptım (usta). Kafamın içinde, ./static/images klasör yok.

Bu nedenle, repo benim boyutu çok arttı. Nasıl bu lekeler tamamen kaldırabilir miyim? Ve uzak benim GitHub repo onu da kaldırmak istiyorum.

CEVAP
6 NİSAN 2011, ÇARŞAMBA


Bu aradığınız ne ise: ignoring doesn't remove a file. Bu sayfa okumanı tavsiye ederim, ama burada kullanmak için özel komut:

git filter-branch --index-filter \
'git rm -r --cached --ignore-unmatch <file/dir>' HEAD

Ayrıca, önbelleğe silinmiş tüm dosyaları gıt kaldırmak için kullanın: oluşturur

rm -rf .git/refs/original/ && \
git reflog expire --all && \
git gc --aggressive --prune

Tek bir eylem son komutu hakkında daha fazla bilgi, yanı sıra istediğiniz her şeyi yapan bir komut dosyası bulabilirsiniz, burada: git: forever remove files or folders from history.

Açıklama sürü ile bir bağlantıları: Remove sensitive data.

[Düzenle]Ayrıca, bu StackOverflow soru bakın: Remove sensitive files and their commits from Git history.

(Komutları natacadokopyalanmış'yukarıdaki soruyla bağlantılı olarak s cevap.) Eğer zaten çalışan kopya dosyaları kaldırdıysanız, aşağıdaki çalışması gerekir. İstenmeyen dosyaları eklenen işlemek için karma öğrenin. Sonra yapın:

git filter-branch --index-filter \
'git update-index --remove filename' <introduction-revision-sha1>..HEAD
git push --force --verbose --dry-run
git push --force

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FRED

    FRED

    1 EKİM 2005
  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • Kindness

    Kindness

    23 Ocak 2006