Za pomocą git branch --all
pokazuje wszystkie oddziały zdalne i lokalne . Kiedy Git odświeża tę listę?
Podczas ciągnięcia / pchania? Jak mogę go odświeżyć za pomocą Git Bash ?
git
github
branch
remote-branch
BendEg
źródło
źródło
git ls-remote
może być tutaj interesująca.Odpowiedzi:
Aby zaktualizować lokalną listę zdalnych oddziałów:
Aby pokazać wszystkie lokalne i zdalne gałęzie, o których (lokalny) Git wie
źródło
git remote update origin --prune
właśnie tego szukałemgit remote update
, a odpowiedzią zaakceptowaną, która wykorzystujegit fetch
, zobacz tutajgit 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 uruchomieniemgit 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. Poorigin/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 zrobiszgit 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.źródło
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łosowaliOP 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 wystarczygit 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ść .
źródło
git fetch -p
Służy
git fetch
do pobierania wszystkich ostatnio utworzonych gałęzi.źródło
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 OPJeś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.
źródło
Jeśli używasz Eclipse,
Wszyscy powinni tam być. Kliknij prawym przyciskiem myszy i „kasy”.
źródło