In un repository git, è stato eliminato un ramo remoto che non sto monitorando. Quando scrivo
git branch -r
il ramo eliminato viene ancora visualizzato (e posso verificarlo)
Quale comando git devo eseguire per aggiornare queste informazioni?
In un repository git, è stato eliminato un ramo remoto che non sto monitorando. Quando scrivo
git branch -r
il ramo eliminato viene ancora visualizzato (e posso verificarlo)
Quale comando git devo eseguire per aggiornare queste informazioni?
Risposte:
Se esegui qualcosa del genere
git branch -d -r remote_name/branch_name
rimuovi solo il checkout locale. Questo comando non fa nulla al repository remoto, motivo per cui viene ancora visualizzato.
Soluzione:
git push origin :branch_name
rimuoverà il ramo remoto (notare ':') e
git branch -d branch_name
rimuoverà il tuo checkout locale.
( Riferimento )
git push <remote> --delete <branchname>
per eliminare i rami remoti.
Se sono stati eliminati i rami nel repository remoto e si desidera aggiornare contemporaneamente tutti i rami di localizzazione remota, è possibile utilizzare
$ git remote prune <remotename>
per eliminare tutti i rami di tracciamento remoto non aggiornati per un determinato telecomando (ovvero quelli che seguono i rami che sono stati rimossi nel repository remoto).
Vedi git remote
documentazione
git fetch
?
git gc
comprime solo oggetti e ref, ed elimina gli oggetti senza riferimento mentre ci sono (con un certo margine di sicurezza).
git remote update --prune
Dovrebbe aggiornare tutti i rami dei telecomandi, aggiungendone di nuovi ed eliminando quelli rimossi.
Modifica: il comando di aggiornamento remoto recupera sostanzialmente l'elenco dei rami sul telecomando. L' --prune
opzione eliminerà i rami di localizzazione remoti locali che puntano a rami che non esistono più sul telecomando .
Utile anche per vedere nuove filiali remote:
git fetch --all
È possibile combinare i flag -r
e -d
per eliminare i rami remoti.
Prova questo comando
git gc --prune=now