Powiedzmy, że mam gałąź o nazwie coolbranch
w moim repozytorium.
Teraz postanowiłem go usunąć (zarówno zdalnie, jak i lokalnie) za pomocą:
git push origin :coolbranch
git branch -D coolbranch
Świetny! Teraz gałąź jest naprawdę usunięta.
Ale kiedy biegnę
git branch -a
Nadal otrzymuję:
remotes/origin/coolbranch
Należy zauważyć, że kiedy klonuję nowe repozytorium, wszystko jest w porządku i git branch -a
nie pokazuje gałęzi.
Chcę wiedzieć - czy istnieje sposób na usunięcie gałęzi z branch -a
listy bez klonowania nowej instancji?
git
git-branch
yonix
źródło
źródło
git fetch -p
(lubgit pull -p
), odległe gałęzie zostaną przycięte.Odpowiedzi:
git remote prune origin
, jak sugeruje druga odpowiedź, usunie wszystkie takie nieaktualne gałęzie. Prawdopodobnie tego chciałbyś w większości przypadków, ale jeśli chcesz po prostu usunąć tę konkretną gałąź zdalnego śledzenia, powinieneś:(
-r
Łatwo zapomnieć ...)-r
w tym przypadku „Wymień lub usuń (jeśli używasz-d
) gałęzie zdalnego śledzenia”. zgodnie z dokumentacją Git dostępną tutaj: https://git-scm.com/docs/git-branchźródło
git remote prune origin
lub jakakolwiek formagit fetch --prune
oznaczania nie działała dla mnie w moim przypadku. ... Alegit branch -d -r origin/feature/branch-name
działało. Nie jestem pewien, czy miało to coś wspólnego z tym, że znajdował się podfeature
przestrzenią nazw (git flow), ale tak to poszło, na wypadek, gdyby któryś z pracowników Google go spotkał.Próbować:
Ze zdalnej dokumentacji Git :
suszona śliwka
źródło
git pull --prune
wspomnianego na stackoverflow.com/a/17983126/94687 I:git remote update --prune
Nie zapomnij o niesamowitości
który pobiera i przycina wszystkie źródła.
źródło
git remote prune origin
i podobny jakgit pull --prune
wspomniano odpowiednio na stackoverflow.com/a/6127884/94687 i stackoverflow.com/a/17983126/94687 . I:git remote update --prune
git branch -a
git branch -a
W naszym szczególnym przypadku używamy Stash jako naszego zdalnego repozytorium Git. Próbowaliśmy wszystkich poprzednich odpowiedzi i nic nie działało. Skończyło się na tym, że musimy wykonać następujące czynności:
Następnie użytkownicy, którzy postanowili pobrać zmiany, musieli wykonać następujące czynności:
źródło
git branch -d branch-name
pracował dla mnie. Uwaga-D
dla-d
. W rzeczywistości, kiedy próbowałem z wielką literą D-D
, utworzyłem nową gałąź o nazwie -DPosługiwać się:
Gdzie
<remote>
jest nazwa zdalnego źródła, np. Origin lub upstream .Przykład:
git remote prune origin
źródło
git remote prune
,git prune
,git fetch --prune
.