Tarafından sunulan bilgilerin ortasında git help fetch, bu küçük öğe var:
-p, --prune
After fetching, remove any remote-tracking branches which no longer exist on the remote.
Belkide, git fetch -p de aradığınız şey nedir?
EDIT: Tamam, bu cevabı 3 yıl sonra hala tartışanlar için, bu cevabı neden sunduğum hakkında biraz daha bilgi ...
İlk olarak, OP “uzaktaki şubelerden [artık uzaktan kumandada olmayan] oluşturulan yerel şubeleri de kaldırmak istediklerini" söylüyorlar. Bu açık bir şekilde mümkün değil git. İşte bir örnek.
Diyelim ben bir merkezi sunucuda bir repo var der ama bir olarak iki ana dalda sahiptir Ave B. Yerel sistemime bu kopyayı klonlarsam, klonum origin/Ave adlı yerel referanslara (henüz gerçek dallar değil) sahip olur origin/B. Şimdi aşağıdakileri yaptığımı varsayalım:
git checkout -b A origin/A
git checkout -b Z origin/B
git checkout -b C <some hash>
Buradaki ilgili gerçekler, bir nedenden dolayı yerel repoumda kökeninden farklı bir adı olan bir şube oluşturmayı seçtiğim ve aynı zamanda (henüz) orijin deposunda bulunmayan bir yerel şubem var.
Şimdi gelelim ben hem kaldırmak demek Ave Buzak repo şube ve (benim yerel repo güncelleştirmek git fetchbenim yerel ref neden bazı formun), origin/Ave origin/Bkaybolmaya. Şimdi, benim yerel repo üç şubesi hala vardır A, Zve C. Bunların hiçbirinin uzak depoda karşılık gelen bir dalı yoktur. Bunlardan ikisi "uzak dallardan yaratıldı", fakat Bköken olarak adlandırılan bir dal olduğunu bilsem bile, bunu bilmem mümkün değilZ , bunun yaratıldığınıB, çünkü muhtemelen iyi bir nedenden ötürü süreçte yeniden adlandırılmıştır. Yani, gerçekten, bazı dış süreç kayıt şube kökenli meta veriler veya geçmişi bilen bir insan olmadan, üç şubeden hangisinin (eğer varsa) OP'nin kaldırmayı hedeflediğini söylemek mümkün değildir. gitSizin için otomatik olarak saklanmayan bazı harici bilgiler olmadan git fetch -p, alabileceğiniz kadar yakındır ve OP'nin sorduğu kelimelerin tam anlamıyla teşebbüsüne yönelik herhangi bir otomatik yöntem, çok fazla şubeyi silme veya OP'nin aksi takdirde alacağı bazı şeyleri kaybetme riski taşır. silinmek istiyor.
Başka bir senaryo da var, örneğin bir origin/Aşeye üç farklı yaklaşımı test etmek için üç ayrı dal oluşturup sonra origin/Agider. Şimdi üç şubem var, ki bu tamamen isim açısından eşleşemiyor, ancak bunlar oluşturuldu origin/Ave bu nedenle OP sorununun gerçek bir yorumu üçünün de kaldırılmasını gerektirecek. Bununla birlikte, bu, onları eşleştirmek için güvenilir bir yol bulabilirseniz, arzu edilmeyebilir ...