Innanzitutto, clona un repository Git remoto e cd in esso:
$ git clone git://example.com/myproject
$ cd myproject
Quindi, guarda le filiali locali nel tuo repository:
$ git branch
* master
Ma ci sono altri rami nascosti nel tuo repository! Puoi vederli usando la -a
bandiera:
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
Se vuoi solo dare una rapida occhiata a una filiale a monte, puoi verificarlo direttamente:
$ git checkout origin/experimental
Ma se vuoi lavorare su quel ramo, dovrai creare un ramo di tracciamento locale che viene fatto automaticamente da:
$ git checkout experimental
e vedrai
Branch experimental set up to track remote branch experimental from origin.
Switched to a new branch 'experimental'
L'ultima riga genera alcune persone: "Nuovo ramo" - eh? Ciò che significa veramente è che il ramo è preso dall'indice e creato localmente per te. La riga precedente è in realtà più informativa in quanto ti dice che il ramo è stato impostato per tenere traccia del ramo remoto, che di solito significa il ramo origin / branch_name
Ora, se guardi le tue filiali locali, questo è ciò che vedrai:
$ git branch
* experimental
master
Puoi effettivamente tenere traccia di più di un repository remoto usando git remote
.
$ git remote add win32 git://example.com/users/joe/myproject-win32-port
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
remotes/win32/master
remotes/win32/new-widgets
A questo punto, le cose stanno diventando piuttosto pazze, quindi corri gitk
a vedere cosa sta succedendo:
$ gitk --all &
git branch -a
) mostra i rami nel telecomando, ma se provi a controllarne uno, sarai in uno stato di "HEAD distaccato". La risposta successiva verso il basso (la seconda più votata) risponde a una domanda diversa (vale a dire: come estrarre tutti i rami e, di nuovo, questo funziona solo per quelli che stai monitorando localmente). Molti dei commenti sottolineano che è possibile analizzare igit branch -a
risultati con uno script di shell che traccia localmente tutti i rami remoti. Riepilogo: Non esiste un modo nativo git per fare ciò che vuoi e potrebbe non essere comunque un'idea così grande.