Risposte:
Per aggiornare l'elenco locale di filiali remote:
git remote update origin --prune
Per mostrare tutte le filiali locali e remote che Git (locale) conosce
git branch -a
git remote update origin --prune
è quello che stavo cercando grazie
git remote update
, e la risposta accettata, che utilizza git fetch
, vedi qui
git fetch
non ho rimosso la cache locale dei rami remoti. Solo è --prune
stato in grado di ripulire tutto.
git config remote.origin.prune true
git remote prune origin
ha lo stesso effetto e si digita meno.
Credo che se corri git branch --all
da Bash che l'elenco dei rami remoti e locali che vedi rifletterà ciò di cui il tuo Git locale "sa" al momento dell'esecuzione del comando. Poiché Git è sempre aggiornato per quanto riguarda le filiali locali nel sistema, l'elenco delle filiali locali sarà sempre accurato.
Tuttavia, per le filiali remote questo non è necessario. Il tuo Git locale conosce solo i rami remoti che ha visto nell'ultimo recupero (o pull). Quindi è possibile che tu possa eseguire git branch --all
e non vedere un nuovo ramo remoto che è apparso dopo l'ultima volta che hai recuperato o tirato.
Per assicurarsi che l' elenco delle filiali locali e remote sia aggiornato, è possibile eseguire una git fetch
prima di eseguire git branch --all
.
Per ulteriori informazioni, i rami "remoti" che compaiono quando si esegue git branch --all
non sono affatto remoti; sono in realtà locali. Ad esempio, supponiamo che ci sia un ramo sul telecomando chiamato feature
che hai inserito almeno una volta nel tuo Git locale. Vedrai origin/feature
elencato come un ramo quando corri git branch --all
. Ma questo ramo è in realtà un ramo Git locale . Quando lo fai git fetch origin
, questo ramo di tracciamento viene aggiornato con eventuali nuove modifiche dal telecomando. Questo è il motivo per cui il tuo stato locale può diventare stantio, perché potrebbero esserci nuovi rami remoti o i tuoi rami di monitoraggio possono diventare stantii.
git fetch
ho fatto.
git fetch
non funziona per me, è necessario aggiungere --prune
. A proposito, non sono downvoter;)
git fetch
non rimuove i rami remoti cancellati. Questo è probabilmente il motivo per cui alcune persone hanno effettuato il downgrade
L'OP non ha richiesto la pulizia per tutti i telecomandi, piuttosto per tutti i rami del telecomando predefinito.
Quindi git fetch --prune
è ciò che dovrebbe essere usato.
L'impostazione git config remote.origin.prune true
rende --prune
automatica. In tal caso, git fetch
potremo anche eliminare rami remoti stantii dalla copia locale. Vedi anche Potatura automatica con Git fetch o pull .
Si noti che ciò non pulisce i rami locali che non stanno più monitorando un ramo remoto. Per questo, vedi Come eliminare rami di localizzazione locali che non esistono più sul telecomando .
git fetch -p
Utilizzare git fetch
per recuperare tutti gli ultimi rami creati.
git fetch
non ha cambiato nulla per me con git 2.17.1. Quale versione e opzioni hai utilizzato?
--prune
o git config remote.NAME.prune true
per risolvere questo problema OP
Se stai usando Eclipse e vuoi vedere nuovi rami da monte;
Nella prospettiva Git, fai clic con il pulsante destro del mouse su un repository Git e quindi scegli "Scarica da upstream". Questo recupera nuovi rami remoti.
Se stai usando Eclipse,
Dovrebbero essere tutti lì dentro. Fare clic destro e "checkout".
git ls-remote
potrebbe essere interessante qui.