Odpowiedzi:
Aby zaktualizować lokalną listę zdalnych oddziałów:
git remote update origin --prune
Aby pokazać wszystkie lokalne i zdalne gałęzie, o których (lokalny) Git wie
git branch -a
git remote update origin --prune
właśnie tego szukałem
git remote update
, a odpowiedzią zaakceptowaną, która wykorzystuje git fetch
, zobacz tutaj
git fetch
nie usunąłem mojej lokalnej pamięci podręcznej zdalnych gałęzi. Tylko --prune
był w stanie wszystko wyczyścić.
git config remote.origin.prune true
git remote prune origin
ma ten sam efekt i piszesz mniej.
Wierzę, że jeśli uruchomisz git branch --all
z Bash, to lista zdalnych i lokalnych gałęzi, które zobaczysz, będzie odzwierciedlała to, o czym twój lokalny Git „wie” w momencie uruchomienia polecenia. Ponieważ Twój Git jest zawsze aktualny w odniesieniu do lokalnych oddziałów w twoim systemie, lista lokalnych oddziałów zawsze będzie dokładna.
Jednak w przypadku zdalnych oddziałów nie musi tak być. Twój lokalny Git wie tylko o zdalnych gałęziach, które widział podczas ostatniego pobierania (lub ściągania). Możliwe więc, że możesz uruchomić git branch --all
i nie zobaczyć nowej zdalnej gałęzi, która pojawiła się po ostatnim pobraniu lub ściągnięciu.
Aby upewnić się, że Twoja lokalna i zdalna lista oddziałów jest aktualna, możesz to zrobić git fetch
przed uruchomieniem git branch --all
.
Aby uzyskać więcej informacji, „zdalne” gałęzie, które pojawiają się podczas uruchamiania, git branch --all
nie są wcale zdalne; w rzeczywistości są lokalne. Załóżmy na przykład, że na pilocie znajduje się gałąź, feature
którą przynajmniej raz ściągnąłeś do lokalnego Gita. Po origin/feature
uruchomieniu pojawi się na liście jako gałąź git branch --all
. Ale ta gałąź jest w rzeczywistości lokalną gałęzią Git. Gdy to zrobisz git fetch origin
, ta gałąź śledzenia zostanie zaktualizowana o wszelkie nowe zmiany ze pilota. Dlatego stan lokalny może stać się nieaktualny, ponieważ mogą istnieć nowe gałęzie zdalne lub gałęzie śledzące mogą stać się nieaktualne.
git fetch
zrobiłem to.
git fetch
nie działa dla mnie, trzeba dodać --prune
. Btw, nie jestem zwycięzcą;)
git fetch
nie usuwa usuniętych zdalnych gałęzi. Prawdopodobnie dlatego niektórzy głosowali
OP nie poprosił o oczyszczenie wszystkich pilotów, a raczej wszystkich gałęzi domyślnego pilota.
Tak więc git fetch --prune
należy użyć.
Ustawienie git config remote.origin.prune true
powoduje --prune
automatyczne. W takim przypadku wystarczy git fetch
również przyciąć przestarzałe zdalne gałęzie z lokalnej kopii. Zobacz także Automatyczne przycinanie za pomocą Git fetch lub pull .
Zauważ, że to nie czyści lokalnych oddziałów, które nie śledzą już zdalnego oddziału. Zobacz Jak przycinać lokalne gałęzie śledzenia, które już nie istnieją w tym celu na odległość .
git fetch -p
Służy git fetch
do pobierania wszystkich ostatnio utworzonych gałęzi.
git fetch
nic nie zmieniło dla mnie w git 2.17.1. Z jakiej wersji i opcji korzystałeś?
--prune
albo, git config remote.NAME.prune true
żeby rozwiązać pytanie OP
Jeśli używasz Eclipse i chcesz zobaczyć nowe gałęzie z góry;
W perspektywie Git kliknij prawym przyciskiem myszy repozytorium Git, a następnie wybierz „Pobierz z pobierania”. Spowoduje to pobranie nowych zdalnych gałęzi.
Jeśli używasz Eclipse,
Wszyscy powinni tam być. Kliknij prawym przyciskiem myszy i „kasy”.
git ls-remote
może być tutaj interesująca.