pobierać z pochodzenia za pomocą usuniętych zdalnych gałęzi?
440
Kiedy to zrobię git fetch origini origin ma usuniętą gałąź, wydaje się, że nie aktualizuje jej w moim repozytorium. Kiedy to robię git branch -r, nadal pokazuje origin/DELETED_BRANCH.
Dziękuję Ci bardzo. Wcześniej ręcznie usunąłem te gałęzie.
Maksim Dmitriev
4
Z jakiegoś powodu twoje polecenie nie działało, ale to działało dla nieistniejącej zdalnej gałęzi w moim originrozwidleniu: git fetch -p origin Kiedy to zrobiłem, git branch -r nieistniejąca zdalna gałąź już się nie pojawiła.
chłopaki, kiedy to robię, mówi, [deleted] (none) -> origin/ < branch name >a gałąź nadal jest wyświetlana w lokalnym repozytorium, jakiś pomysł, dlaczego?
Buddhi741,
4
Otrzymuję komunikat z informacją, że moje gałęzie zostały usunięte, ale uruchomione git branchnadal pokazuje gałęzie, które rzekomo zostały usunięte.
Gdy ktoś usunie gałąź ze zdalnego repozytorium, git nie usunie automatycznie gałęzi lokalnego repozytorium, gdy użytkownik pobierze git lub pobierze git. Jeśli jednak użytkownik chce usunąć wszystkie gałęzie śledzenia ze swojego lokalnego repozytorium, które zostały usunięte w repozytorium zdalnym, może wpisać:
git zdalne pochodzenie śliwek
Uwaga: parametr -p z git fetch -pfaktycznie oznacza „przycinać”.
Niezależnie od wybranego sposobu nieistniejące zdalne gałęzie zostaną usunięte z lokalnego repozytorium.
Podoba mi się to, ponieważ nie przynosi niczego nowego.
Marek R
30
Musisz wykonać następujące czynności
git fetch -p
w celu zsynchronizowania listy oddziałów. Podręcznik git mówi
-p, --prune
Po pobraniu usuń wszelkie odniesienia do zdalnego śledzenia, które już nie istnieją na pilocie. Znaczniki nie podlegają przycinaniu, jeśli są pobierane tylko z powodu domyślnego automatycznego śledzenia znacznika lub --tagsopcji. Jeśli jednak tagi są pobierane z powodu jawnego refspec (w wierszu polecenia lub w konfiguracji zdalnej, na przykład jeśli pilot został sklonowany z tą --mirroropcją), to również podlegają przycinaniu.
fetch: dokument, że przycinanie odbywa się przed pobraniem
Zostało to zmienione w 10a6cc8 ( fetch --prune: Uruchom śliwkę przed pobraniem, 02.02.2014), ale wygląda na to, że nikt w tej dyskusji nie zdawał sobie sprawy, że wyraźnie reklamujemy „po”.
Dokumentacja mówi teraz:
Przed pobraniem usuń odniesienia do zdalnego śledzenia, które już nie istnieją na pilocie
Tak jest ponieważ:
Gdy mamy gałąź zdalnego śledzenia o nazwie „ frotz/nitfol” z poprzedniego pobierania, a nadrzędny teraz ma gałąź o nazwie „ frotz”, pobieranie nie może usunąć „ frotz/nitfol” z „ git fetch --prune” z nadrzędnego. git poinformuje użytkownika, aby użył „ git remote prune” do rozwiązania problemu.
Zmień sposób działania „ fetch --prune”, przenosząc operację przycinania przed operacją pobierania. W ten sposób, zamiast ostrzegać użytkownika o konflikcie, automatycznie go naprawia.
Odpowiedzi:
Musisz wykonać następujące czynności
Spowoduje to zaktualizowanie lokalnej bazy danych zdalnych oddziałów.
źródło
origin
rozwidleniu:git fetch -p origin
Kiedy to zrobiłem,git branch -r
nieistniejąca zdalna gałąź już się nie pojawiła.git remote prune origin
i podobny jakgit pull --prune
wspomniano odpowiednio na stackoverflow.com/a/6127884/94687 i stackoverflow.com/a/17983126/94687 .[deleted] (none) -> origin/ < branch name >
a gałąź nadal jest wyświetlana w lokalnym repozytorium, jakiś pomysł, dlaczego?git branch
nadal pokazuje gałęzie, które rzekomo zostały usunięte.Od http://www.gitguys.com/topics/adding-and-removing-remote-branches/
Uwaga: parametr -p z
git fetch -p
faktycznie oznacza „przycinać”.Niezależnie od wybranego sposobu nieistniejące zdalne gałęzie zostaną usunięte z lokalnego repozytorium.
źródło
Musisz wykonać następujące czynności
w celu zsynchronizowania listy oddziałów. Podręcznik git mówi
Osobiście lubię używać,
git fetch origin -p --progress
ponieważ pokazuje wskaźnik postępu.źródło
To zadziałało dla mnie.
źródło
Jeśli chodzi o
git fetch -p
, jego zachowanie zmieniło się w Git 1.9 i tylko Git 2.9.x / 2.10 odzwierciedla to.Zobacz zatwierdzenie 9e70233 (13 czerwca 2016 r.) Autor: Jeff King (
peff
) .(Połączone przez Junio C Hamano -
gitster
- w commit 1c22105 , 06 lipca 2016)Dokumentacja mówi teraz:
Tak jest ponieważ:
źródło