2012-01-17 18 views
11

Sto lavorando su un progetto e ho creato un repository con un ramo master. Qualcuno che sta lavorando su di esso ha aggiunto un ramo chiamato new-branch - le loro modifiche al codice sono in questo ramo.Solo il ramo principale è visibile dopo la clonazione di un repository Git

Tuttavia, quando ho clonare il repository:

$ git clone [email protected]:me/my-repo.git 

posso clonare con successo, ma mostra solo il ramo master. Non so come posso visualizzare/ottenere lo new-branch.

Come posso inserire questo ramo nel mio repository?

+0

Solo per il record - 'pull! = Clone'. In 'git' questi sono due concetti molto diversi. – twalberg

risposta

25

Quando si clona un repository, tutte le filiali remote vengono create come "rami di rilevamento remoto" nel repository. Questi non sono mostrati di default, ma si può vedere questi con:

git branch -a 

Se fate una git checkout new-branch, git troverà il ramo di monitoraggio a distanza con lo stesso nome, crea automaticamente una nuova filiale locale dalla stessa commit e passare al nuovo ramo locale.

Per lavori futuri, il comando git fetch aggiornerà tutti i rami di monitoraggio remoto con il loro ultimo commit dal remoto.

+0

Non sapevo che funzionasse - pensavo che avessi bisogno di -b al checkout per creare un nuovo ramo –

+0

@Adrian Cornish: questo comportamento DWIM è stato presente da git 1.6.6, introdotto in [70c9ac2f] (https://github.com)/git/git/commit/70c9ac2f1999b7e0c17a864235537cffe29dfea4) –

+0

Cosa succede se sono disconnesso? "rami di localizzazione remota" sembrano non essere fisicamente presenti nel repository clonato. Sarebbe git checkout funzionare se l'ho appena trovato tramite git branch -a in uno stato disconnesso? Git branch -a elenca il ramo in quello stato? – timmkrause

Problemi correlati