uzak şubeleri silinen bir kaynaktan getirilsin mi?


Yanıtlar:


811

Aşağıdakileri yapmanız gerekir

git fetch -p

Bu, uzak dalların yerel veritabanını güncelleştirir.


1
çok teşekkür ederim. Bu dalları daha önce manuel olarak sildim.
Maksim Dmitriev

4
Bazı nedenlerden dolayı, komutunuz işe yaramadı, ama bu benim originçatalımda olmayan bir uzak dal için yaptı : git fetch -p origin O zaman ben git branch -r var olmayan uzak dal artık görünmedi .
oldfartdeveloper

11
Tamlık için: sırasıyla stackoverflow.com/a/6127884/94687 ve stackoverflow.com/a/17983126/94687 adresinde belirtilenle aynı git remote prune originve benzer olmalıdır . git pull --prune
imz - Ivan Zakharyaschev

6
Bunu yaptığımda çocuklar diyor [deleted] (none) -> origin/ < branch name >ve şube hala yerel repo herhangi bir fikir gösteriliyor?
Buddhi741

4
Şubelerimin silindiğini söyleyen bir mesaj alıyorum, ancak koşmak git branchhala silinen şubeleri gösteriyor.
sdfsdf

91

Gönderen http://www.gitguys.com/topics/adding-and-removing-remote-branches/

Birisi uzak bir depodan bir dalı sildikten sonra, kullanıcı git veya git getirme yaptığında git yerel depo dallarını otomatik olarak silmez. Ancak, kullanıcı uzak bir depoda silinmiş olan tüm izleme dallarının yerel havuzundan kaldırılmasını istiyorsa, şunları yazabilir:

uzak erik kökeni

Not olarak, -p parametresi git fetch -paslında "kuru erik" anlamına gelir.
Her iki şekilde de seçtiğinizde, mevcut olmayan uzak dallar yerel deponuzdan silinecektir.


Yeni bir şey getirmediği için bunu seviyorum.
Marek R

30

Aşağıdakileri yapmanız gerekir

git fetch -p

şube listenizi senkronize etmek için. Git manuel diyor

-p, --prune
Getirdikten sonra, artık uzaktan kumandada bulunmayan uzaktan izleme referanslarını kaldırın. Etiketler, yalnızca varsayılan otomatik izleme veya bir --tagsseçenek nedeniyle getirilirse budamaya tabi değildir . Bununla birlikte, etiketler açık bir refspec nedeniyle (komut satırında veya uzak yapılandırmada, örneğin uzaktan kumanda --mirrorseçenekle klonlanmışsa ) getirilirse, budamaya da tabi tutulurlar.

Şahsen kullanmayı seviyorum git fetch origin -p --progressçünkü bir ilerleme göstergesi gösteriyor.


11

Bu benim için çalıştı.

git remote update --prune

6

git fetch -pBununla ilgili olarak , Git 1.9'da davranışı değişti ve sadece Git 2.9.x / 2.10 bunu yansıtıyor.

Bakınız Jeff King ( ) tarafından 9e70233 (13 Haz 2016) taahhüdü . (Tarafından Birleştirilmiş - Junio C Hamano - içinde 1c22105 taahhüt 2016, 06 Tem)peff
gitster

fetch: Budama olur belge olduğunu önce Getirme

Bu 10a6cc8'de değiştirildi ( fetch --prune: Getirmeden önce budama çalıştır, 2014-01-02), ancak bu tartışmadaki hiç kimse "sonra" yı açıkça reklam yaptığımızı fark etmedi.

Yani belgeler şimdi şöyle diyor:

Getirmeden önce , artık uzaktan kumandada bulunmayan uzaktan izleme referanslarını kaldırın

Çünkü bu:

frotz/nitfolÖnceki bir getirme işleminden " " adında bir uzaktan izleme şubesine sahip olduğumuzda ve yukarı akış artık " frotz" adlı bir şubeye sahip olduğunda , getirme işlemi " frotz/nitfol" ile git fetch --pruneyukarı akıştan " " kaldırılamaz . git git remote prune, sorunu " " kullanması için kullanıcıyı " " bilgilendirir .

fetch --pruneGetirme işleminden önce budama işlemini hareket ettirerek " " çalışma şeklini değiştirin . Bu şekilde, kullanıcıyı bir çakışma konusunda uyarmak yerine otomatik olarak düzeltir.

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.