Git budama nedir?


88

Yanlışlıkla bazı uzak dalları budanmıştım ve bunun sonucunun ne olduğunu gerçekten bilmiyorum (Uzak bir dalı sileceğini düşünerek Git Extensions'ta "Uzak dalları budama" düğmesini tıkladım).

Resmi belgeler "git-prune - Erişilemeyen tüm nesneleri nesne veritabanından budayın" diyor. Bunun ne anlama geldiğini gerçekten anlamıyorum. Bunun birleştirilmiş dalları kaldırmış olabileceğini tahmin ediyorum ama gerçekten emin değilim.



1
Bakmaya değer olabilir git gc: git-scm.com/docs/git-prune .
kovac

Yanıtlar:


93

Git Extensions'taki "Uzak dalları budayın" git remote prunekomutu, şubenin artık uzakta bulunmadığı yerel uzaktan izleme dallarınızı kaldıran komutunu yürütür .

Buraya bakın: https://git-scm.com/docs/git-remote#git-remote-empruneem


yani temelde uzaktan kumandanıza öncelik veriyor ve yerelinizi uzak şubelerinize uyacak şekilde ayarlıyor musunuz?
Honey

3
@Honey hayır, sadece yerel uzaktan takip şubelerini kaldırır , normal şubelere dokunulmaz.
1615903

32

Bu sadece çöp, dallarınızı toplar.

Bu, şubenizin herhangi bir atasında bir nesneye (bir commit) ulaşılamazsa, git veritabanı için kaldırılacak ve artık ulaşılamayacağı anlamına gelir.

Bu sadece git deposunu biraz temizler ve daha hafif hale getirir.


4
Belgelere göre, bunun gibi ev tutma görevleri için , esasen git budama yapacak olan git gca yapmak yerine daha git pruneiyi olabilir.
kovac

1
Olumsuz oy: bu cevap (ve bu konudaki soru) kafa karıştırıyor git pruneve git remote prune. Bunlar aynı değildir, ikincisi, yerel şubeleri dokunulmadan bırakırken, uzaktan kumandada artık bulunmayan dalları gerçekten temizler.
JBert

12

Kuru eriklerin depoya bağlı olduğunu bilmek önemlidir . Yerel deponuzu birden fazla uzaktan kumandaya bağlayabileceğinizi herkes bilmiyor. Örneğin, açık kaynaklı bir projeyle çalıştığınızda ve çatallarla çalışmak zorunda kaldığınızda kullanışlı olur.

Bu nedenle, prune komutu bir repo adı gerektirir. Çoğu durumda öyledir git remote prune origin, ancak deponuzu herhangi bir şekilde arayabilirsiniz, olması gerekmez origin.


2

Ana unsurla birleştirdikten sonra kaldırılan uzak özellik dalları olabilir. Temizlemenin bir yolu olarak özellik dallarını silmiş olabiliriz. Ancak, silinen şubeyi yerel sisteme teslim aldıysanız ve durumu izleme olarak ayarladıysanız, git pull bu yerel şubeleri silmez (çünkü bunlar sunucudan zaten kesilmiştir). Bu tür yerel öksüz şubeleri temizlemek için, git prunekomut yardımcı olmak için kullanışlı olacaktır.

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.