SORU
9 NİSAN 2010, Cuma


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
10 NİSAN 2010, CUMARTESİ


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

  1. Yapılandırma dosyasının bir kopyasını kaydedin.
  2. Dan yeniden kurtarmak.
  3. 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).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • CaliforniaMetin

    CaliforniaMe

    3 ŞUBAT 2013
  • Matthew Morrill

    Matthew Morr

    15 EKİM 2011