Dosyayı depodan kaldırın, ancak yerel olarak saklayın


369

Uzak depomda kaldırmak istediğim bir klasör var. Silmek istiyorum, ancak klasörü bilgisayarımda tut



Sizinkini yazarken lütfen önerilen ilgili sorulara bakın - kopya muhtemelen ilk ikisinden biriydi.
Cascabel


Yanıtlar:


637
git rm --cached -r somedir

Dizinin silinmesini aşamalı hale getirir, ancak diskteki hiçbir şeye dokunmaz. Bu, aşağıdaki gibi bir dosya için de çalışır:

git rm --cached somefile.ext

Sonrasında eklemek isteyebilirsiniz somedir/veya somefile.extsizin için .gitignoreo git geri eklemeye çalışmaz böylece dosyanın.


24
Ve sonra .gitignore yolunu ekleyin, böylece git daha sonra eklemenizi sağlamaz.
grossvogel

3
Bu, uzaktan kumandayı çektiğinde dizinin kaldırılmasına neden olur mu?
bstpierre

Çektiği zaman değil; çekmenin otomatik birleştirme işlemi sırasında dosyalar yerel olarak kaldırılmış olarak kalır. Bundan sonra, bir itme, dosyaların sunucu tarafında kaldırılmasına neden olur.
Walter Mundt

7
Üçüncü bir uzaktan kumandam varsa ne olur? Gelecekteki bir çekmede ilgili dosyalar kaldırılacak mı? Soruyorum çünkü bu oldukça yaygın bir kullanım örneği, yani repoya bazı dosyaları kontrol edin, daha sonraki bir tarihte iyi bir nedenden ötürü uzaktan kumandalar arasında ayrıldıklarını fark edin ve ilk etapta asla repoda olmamalı, istiyorum tüm yerel check-out'ları aynen olduğu gibi tutarak, ancak dosyaları depodan kaldırarak.
Bobby Jack

6
Tek dosyalar için şunları yapabilirsinizgit rm --cached path/to/file
Travis Reeder

3

Ben sadece:

  • Klasörü çalışma ağacınızın dışına taşıyın
  • git rm klasör, değişikliği taahhüt
  • Ekle .gitignore(veya.git/info/excludesDeğişikliğe )
  • Klasörü geri taşı

8
bu iyi bir çözüm değil - ya çok büyük bir dizininiz varsa?
ioleo

muhtemelen kullanmanız gerekiyorgit rm -r
theUtherSide

1
@ loostro sadece başka bir blok cihaza taşımayın. Çoğu dosya sistemi sadece dosyanın
inode'unu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.