2011-01-28 19 views
9

C'è ancora qualcosa che non capisco con git. È un ramo. Quindi diciamo che ho un repository locale A che clonerò da uno remoto B. Quindi ora il A ha il ramo principale estratto.Git Switching branch

Così quando spingo da A si passa al master B.

B è solo un clone su github, un clone di C.

Di tanto in tanto in altro per entrare in sincronia tiro dal ramo master C.

Ma ora il ramo master C è piuttosto guasto per il momento. Poiché dal A ho avuto il pull da C il mio locale A è anche bugy.

Quindi desidero dal A estrarre il ramo stabile C. Come fate di solito in questa situazione?

Si crea una nuova filiale su A e si tira da C. Ma dal momento che A avere il cambiamento C maestro che ho bisogno di tornare in primo luogo ...

risposta

13
git fetch C 
git checkout C/stable-branch 
git checkout -b myCopy 

Poi myCopy è una (copiato) filiale locale di uno stabile di C.

+1

Grazie era quello che stavo cercando. – mathk

7

in due linee:
git fetch C
git checkout -b myCopy -t C/stable-branch

myCopy è ora una filiale locale di C/stabile ramo, e sta monitorando esso, in modo da poter fare git push e git pull senza refspec .