Hub documentation

Bir Depodan Hassas Verileri Kaldırma

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bir Depodan Hassas Verileri Kaldırma

Bu sayfa yalnızca git tabanlı depolara (modeller, veri kümeleri ve Spaces) uygulanır.

Hub'da istemediğiniz bir gizli anahtar, özel veri veya herhangi bir dosya yüklediyseniz, yeni bir commit ile silmek yeterli değildir: eski commit'ler hâlâ bu veriyi içerir ve /resolve/<old_sha>/<path>, /blob/<old_sha>/<path> veya /commit/<old_sha> gibi URL'ler dosyayı sunmaya devam eder. Bir dosyayı tamamen kaldırmak için, dosyaya erişebilen tüm ref'lerden (branch'ler, tag'ler ve pull request'ler) kaldırmanız gerekir.

Dosya bir gizli bilgi (token, API anahtarı, şifre) içeriyorsa, önce onu iptal edin veya değiştirin ve ele geçirilmiş olarak değerlendirin: CDN tarafından önbelleğe alınan veya kullanıcılar tarafından indirilen kopyalar, dosyanın kaldırılmasından sonra da var olmaya devam edebilir. Hugging Face token'ları için bkz. Sızdırılan bir token'ın iptal edilmesi.

Genel Bakış

EylemKaldırırYapraklar
Dosyayı yeni bir commit'te silinEn son revizyondaki dosyaTüm önceki commit'ler, bu yüzden tek başına yeterli değil
Büyük Dosyaları Listele → “rewrite history” ile silDosya içeriği (anında) ve tüm dallardan, etiketlerden ve PR referanslarından imleciDosyanın yolu, sha256 ve boyutunu içeren eski commitler, temizlenene kadar
git filter-repo + zorla itmeYüklediğiniz her dal ve etiketten dosyaPush etmediğiniz Refs, pull request'lerle sabitlenmiş geçmiş
super_squash_historyBir dalın geçmişiDiğer dallar, etiketler, pull request'ler tarafından sabitlenmiş geçmiş
Pull request'i silPR referansı, yalnızca sürüm geçmişi korunduO geçmiş, temizlenene kadar

Geçmişi yeniden yazmak (yeni bir commit dışında her seçenek) geri alınamaz ve commit SHA'larını değiştirir. git kullanan işbirlikçiler yeniden klonlamalı veya dallarını yeniden yazılmış olanlara sıfırlamalı ve eski geçmişlerini geri itmemelidir; bu, dosyayı yeniden tanıtmaya yol açar.

Önerilen sıra

  1. Sızan herhangi bir gizli anahtarı iptal edin veya değiştirin.
  2. “rewrite history” ile LFS ve Xet dosyalarını kaldırın.
  3. Her dal ve etiketten normal git dosyalarını kaldırın.
  4. Düzenli git dosyaları için, dosyanın commit edilmesinden sonra açılan pull requestleri silin.
  5. Sahip olduğunuz duplike depoları temizleyin.
  6. Gerekirse bize ulaşın.

LFS ve Xet dosyaları

Dosya, deponuzdaki “List Large Files” (bu, Xet destekli dosyaları da içerir) bölümünde görünüyorsa:

  1. Deponuzun Ayarlar sayfasına gidin.
  2. “Storage” bölümünde “List Large Files” seçeneğine tıklayın.
  3. Dosyayı silin, “rewrite history” seçeneğinin işaretli olduğundan emin olun (varsayılan).

“rewrite history” ile büyük bir dosyanın silinmesi, içeriğini hemen kaldırır ve dosyanın işaretçisini her dal, etiket ve PR ref'inden çıkarır. Bu işlem, dosyayı içeren ilk commit'in ve tüm türevlerinin SHA'sını değiştirir ve boş kalan commit'leri (örneğin yalnızca dosyayı ekleyen bir commit) düşürür. Eski commit'ler, dosyanın yolunu, sha256 değerini ve boyutunu temizlenene kadar göstermeye devam eder. Daha fazla ayrıntı için Storage Limits bölümüne bakın.

Dosyanın yolu veya adı da hassas ise, bu eski commitlerde temizlenene kadar kalır. “Rewrite history” işlemi, dosyayı bu commitlerle birlikte kaldırır.

Düzenli git dosyaları

Seçenek 1: git filter-repo ile geçmişi yeniden yazın ve dosyayı içeren her dalı ve etiketi force-push edin. Force-push, yazma erişimine sahip kullanıcılara izin verilir.

git clone https://huggingface.co/<namespace>/<repo>  # use /datasets/ or /spaces/ for those repo types
cd <repo>
git filter-repo --invert-paths --path path/to/file
git remote add origin https://huggingface.co/<namespace>/<repo>  # filter-repo removes the remote
git push --force --all origin
git push --force --tags origin

2. seçenek: dosyayı silin ve geçmişi birleştirin super_squash_history ile. Her çağrı tek bir dalı tek bir commit'e birleştirir, bu yüzden etkilenen her dal için bunu tekrarlayın ve ihtiyaç duymadığınız dalları ve etiketleri silin.

from huggingface_hub import HfApi

api = HfApi()
api.delete_file("path/to/file", repo_id="<namespace>/<repo>")
api.super_squash_history(repo_id="<namespace>/<repo>", branch="main")
api.delete_tag(repo_id="<namespace>/<repo>", tag="v1.0")

Çekme istekleri

Bu yalnızca normal git dosyalarına uygulanır: “rewrite history” ile büyük bir dosyayı silmek, pull request’leri zaten yeniden yazar.

Dosya commit edildikten sonra açılan herhangi bir pull request, main yeniden yazılsa veya squash edilse ve PR birleştirilmiş ya da kapatılmış olsa bile, o geçmişi SHA üzerinden erişilebilir tutar. Pull request'in silinmesi bu geçmişi serbest bırakır ve ardından temizlenir.

Yinelenen depolar

Yenilenen depolar bağımsızdır, bu nedenle sahip olduğunuz depoları aynı şekilde temizleyin. Model ve veri seti kopyaları, kopyalama anındaki main dosyalarını (tek bir commit olarak) içerirken, Space kopyaları main'in tam geçmişini korur. Diğer dallar ve etiketler kopyalanmaz.

Eski commit'ler kaybolduğunda

Eski commit'ler, SHA'ları üzerinden (web arayüzünde, API'de ve git fetch <sha> ile) erişilebilir kalmaya devam eder; bu erişilebilirlik, genellikle bir force-push, bir super_squash_history, bir “rewrite history” silme işlemi veya onları koruyan pull request'in silinmesinden yaklaşık bir saat sonra temizlenene kadar sürer.

Bize ne zaman ulaşmalısınız

  • 404 döndürmesi kesin olarak garanti edilen eski commit URL'lerine ihtiyacınız var
  • Önbelleğe alınmış indirmelerin geçersiz kılınması gerekiyor
  • Data Studio Parquet dönüşümleri (refs/convert/*) veya Space derlemeleri gibi türetilmiş kopyaların sıfırlanması gerekir.
Update on GitHub