2013-04-19 12 views
5

Di solito, quando invio richieste pull su github, creo un ramo, apporto le modifiche, quindi chiedo loro di unire quel ramo nel repository.Se cancelliamo un ramo sul server, possiamo eliminarlo automaticamente nella nostra copia locale?

Una volta fatto, su Github, cancello il ramo (ma github lo nasconde). Quindi cancello definitivamente il ramo sul sito Github.

Ora che il ramo remoto è sparito, come posso sincronizzare il repository locale con il telecomando? Ho provato a recuperare e tirare, ma questo non elimina i rami nel mio repository locale.

Devo cancellarli manualmente dal mio repository, o c'è un modo per sincronizzarlo?

risposta

1

Si può provare una:

git remote prune origin 

(assumendo che il 'origine' remota fa riferimento il tuo repo GitHub)

Questo è spiegato in "cleaning up old remote git branches" (git branch -d localbranch)

non lo faccio conosco un comando git nativo che farebbe entrambi.
Solo uno script come "git_remote_branch" sarebbe eliminare un ramo sia su GitHub e localmente

eliminare (alias: distruggere, uccidere, rimuovere, rm)

Eliminare il ramo a distanza quindi eliminare la sezione locale.
Il ramo locale non viene eliminato se sono presenti modifiche in sospeso.

$ grb delete branch_name [origin_server] 
+0

Ciò ha impedito a tutti i rami di apparire su "origin" quando eseguo 'git branch -a', ma i rami esistono ancora nel mio repository locale. – F21

+0

@ F21 vero. Ho modificato la mia domanda per rendere più visibile questa limitazione e per suggerire una possibile soluzione. – VonC

0

Un'altra opzione per cancellare (sui vostri locali) rami cancellati sul server potrebbe essere

git fetch -p

Spero che questo aiuti.