Bir depo dosyaları silmeden dizinden dosyayı kaldırmak için Nasıl Gıt:
Kullandığınızda
git rm --cached myfile
hedefi olan yerel dosya sistemi, silinmez. Ama zaten sürüm bilgisi ve dosya kaydedilmiş, merkezi bir depo için itti, ve komutu kullanmadan önce başka bir depo içine çekti, bu sistemin içinde olan dosyayı silin.
Bir şekilde sadece herhangi bir dizinden silmeden sürüm dosyayı kaldırmak için var?
Açıklık, umarım. Edit:
CEVAP
Tamamlama niyetinde kaydedebilirsiniz bir şapşal gibi düşünmüyorum “bu Dosya İzleme durdurmak, ama silmeyin”.
Böyle bir niyeti çıkarılarak dosya siler (veya üzerine rebase) bir birleştirme işlemek herhangi bir bilgi kaynaklarında Gıt dış müdahale gerektirir.
Bir Kopyasını kaydetme, Silme Uygulamak, Geri
Muhtemelen en kolay şeydir senin dosyanın bir kopyasını kaydetme, silme, çekme, sonra dosyayı geri yüklemek için alt kullanıcılar söyleyecek.
Rebase ile çekiyorlar ve ‘taşıma’ dosya değişiklikleri, çatışmalar olacak. Çözmek için bu tür çatışmalar, git rm foo.conf && git rebase --continue
(Eğer çakışan taahhüt etti değişikliklerin yanı sıra bu kaldırılan dosya) veya git rebase --skip
(eğer çakışan bir taahhüt var, sadece değişiklik için kaldırılan dosya).
Bir Siler teslim çektikten Sonra İzlenmeyen Dosya geri yükleme
Eğer zaten silme işlemini tamamlama çekti varsa, hala git show ile dosyanın önceki sürümünü kurtarabilirsiniz:
git show @{1}:foo.conf >foo.conf
Veya *ile 24* (William Pursell yorum; ama yeniden kaldırmayı unutmayın bu dizinden! başına):
git checkout @{1} -- foo.conf && git rm --cached foo.conf
Eğer silme (veya müstakil bir KAFAYA rebase ile çekerek) çekerek bu yana diğer eylemler varsa, bir şey @{1}
başka ihtiyaçları olabilir. git log -g
silme çektiler önce taahhüt bulmak için kullanabilirsiniz.
Bir yorumda, “durdurdunuz, ama yapılandırma bir tür” yazılım (doğrudan depo) çalıştırmak için gerekli dosya. saklamak istediğiniz dosya söz
Bir ‘Varsayılan’ ve El ile/Otomatik olarak Etkinleştirmek . olarak Dosya tutmak
Bu tamamen kabul edilemez olmaya devam etmek korumak yapılandırma dosyasının içeriği depo, olabilir yeniden adlandırmak için takip dosyasından (örneğin) foo.conf
foo.conf.default
ve talimat kullanıcılara cp foo.conf.default foo.conf
uygulama sonra yeniden uygulayın.
Ya da, eğer kullanıcı zaten varolan bazı parça deposu (örneğin, bir komut dosyası veya başka bir program tarafından yapılandırılmış içerik deposu (örneğin Makefile
veya benzeri)) başlatmak/dağıtmak yazılımı, sen-ebil eklemek bir varsaymak mekanizmasını başlatma/dağıtma işlemi:
test -f foo.conf || test -f foo.conf.default &&
cp foo.conf.default foo.conf
Böyle varsaymak bir mekanizma ile, kullanıcıların yeniden adlandırır 16 ** herhangi bir ekstra iş yapmak zorunda kalmadan foo.conf.default
taahhüt çekmek mümkün olmalıdır.
Ayrıca, eğer ileride ek tesisler/depoları yaparsanız elle yapılandırma dosyası kopyalamak zorunda kalmazsınız.
Tarihi Yeniden Yazmak Yine De El İle Müdahale Gerektirir
Depoyu içeriği korumak için kabul edilemez ise o zaman muhtemelen tamamen git filter-branch --index-filter …
gibi bir şey ile tarih onu ortadan kaldırmak isteyecektir.
Bu, her şube/depo için manuel müdahale gerektiren tarih, (bkz: “” git rebase manpagebölüm) Yukarı Rebase geçirdi.yeniden tutarları
Özel tedavi yapılandırma dosyanız için gerekli bir yeniden yazma: kurtarma sırasında gerçekleştirmesi gereken başka bir adım olacaktır
- Yapılandırma dosyasının bir kopyasını kaydedin.
- Dan yeniden kurtarmak.
- Yapılandırma dosyasını geri yükleyin.
Bunun tekrarlanmaması için göz ardı
Ne olursa olsun yöntemi kullanın, ister Ekle yapılandırma adı .gitignore
dosya deposu öyle ki, hiç kimse yanlışlıkla git add foo.conf
tekrar (mümkündür, ama gerektirir -f
/--force
).
Eğer birden fazla yapılandırma dosyası, şöyle düşünebilirsin ‘hareket’ hepsini bir tek dizin ve görmezden her şey (‘hareket’ yani değişen programın beklediğini bulmak için kendi yapılandırma dosyalarını değiştirerek (veya Başlat/dağıtma mekanizması) kopyalama/taşıma dosyaları için yeni konum; belli ki istemez kigit mvgöz ardı edilecek bir dizine bir dosya).
Yerel dizinden silmeden Git deposu bir...
Nasıl gıt dizinden bir dosyayı kaldırm...
Nasıl silmeden sürüm kontrolü Bir dosy...
Nasıl Gıt hazırlama alanından tek bir ...
Nasıl GitHub benim depo bir dizin kald...