SORU
21 EYLÜL 2010, Salı


Listeleme ve silme Git hiçbir şube (sarkan?)altında tamamlar

Özel bir şube altında tamamlar bol git deposu var, 4 ** onları mümkün ama bunları içeren şubeleri listesine çalıştığımda, hiçbir şey geri bildiriyor:

Bu sarkan/ağaç sorunu iptalleri (- D şube) bağlı olarak, repo ben budanmış ben de öyle düşünmüştüm, ama yine de bundan sonra: söz bakın

$ git fetch origin

$ git fsck --unreachable
$ git fsck

Hiçbir çıkış, hiçbir şey sarkan (değil mi?)

$ git show 793db7f272ba4bbdd1e32f14410a52a412667042
commit 793db7f272ba4bbdd1e32f14410a52a412667042
Author: ..

Ama

$ git branch --contains 793db7f272ba4bbdd1e32f14410a52a412667042

Hiçbir çıkış verir

Tam olarak bu durumu işlemek nedir? Nasıl liste yapabilirim benzer devlet ile tamamlar, Nasıl bu gibi haller silebilir miyim?

CEVAP
24 Aralık 2010, Cuma


Bu reflogs tüm sarkan tamamlar ve bu ulaşılabilir kaldırmak için:

git reflog expire --expire-unreachable=now --all
git gc --prune=now

Ama istediğinin bu olduğundan emin olun. Man sayfaları okumanızı tavsiye ederim ama işte kitap

git gcerişilmez nesneler (tamamlama, ağaçlar, lekeler (dosyalar)) kaldırır. Bir nesne erişilemez ise bazı şube tarihinin bir parçası değil. Aslında biraz daha karışık

git gc diğer bazı şeyler yapıyor ama burada önemli ve tehlikeli değildir.

İki hafta daha genç olan erişilmez nesneler --prune=now kullanıyoruz yani kaldırılmaz anlamına gelen "şimdi önce oluşturulan ulaşılmaz nesneleri kaldırın".

Nesneleri de reflog üzerinden ulaşabilirsiniz. Dalları bazı proje tarihi kaydederken, bu şube tarihinin rekor reflogs. Sen değiştirme, vb sıfırlayın. bir hata yaptın farkında mısın, diye tamamlar şube tarihi kaldırılır ama gıt etrafında onları tutar. Reflogs yıkıcı ve diğer işlemleri bir şube (veya KAFASINI) üzerinde, daha yıkıcı bir işlemi geri almak için yapım yapıldı ne bulmak için kolay bir yol vardır.

Biz de reflogs aslında her şey bir bölümünden ulaşılabilir kaldırmak için. Yani --all reflogs dolacak tarafından yapıyoruz. Tekrar git reflogs biraz daha anlat için bunu yapmak için değil yani kullanıcıları korumak için saklar: --expire-unreachable=now.

Ben özellikle reflog yıkıcı faaliyetlerinden kurtarmak için kullanmak beri ben tamamen reflogs vuruyor genelde --expire=now kullanın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Griffin Gibson

    Charles Grif

    26 NİSAN 2006
  • Kassem G

    Kassem G

    25 EKİM 2006
  • Nickcidious

    Nickcidious

    6 HAZİRAN 2011