Cómo clonar ramas (branch) en git

Escenario
Tienes tu proyecto en un repositorio de github.com con dos ramas (master y foo) y quieres clonarlas a tu disco duro.

Solución

git clone git@github.com:usuario/proyecto.git

Con esto obtendremos la rama principal (master).

git fetch
git checkout --track -b foo origin/foo

Y con esto otro la rama foo.

¿Conocéis alguna forma más sencilla? En este caso tenemos dos ramas, pero si hubiese N+1, ¿tendremos que descargar todas una a una?

Vía

3 comentarios en “Cómo clonar ramas (branch) en git

  1. blaxter

    Cuando haces el git clone, ya tienes todo el repositorio localmente.

    Ese git fetch sobraría (salvo que en el instante entre el clone y el fetch, se hubiesen creado nuevas ramas en el repositorio remoto clonado).

    Haciendo git branch -a, ves todas.

    Para trabajar localmente, te obliga a crearte una branch local. Las origin/* son referencias a ramas remotas que no deben de ser modificadas (por eso no te deja trabajar sobre ellas y tienes que hacer el branch local) para poder luego pushear a ellas. git push origin/foo my_foo (o si las creas con track, ni hace falta señalar los nombres explícitamente)

  2. DraXus Autor

    Ah, vale. Intenté hacer git checkout foo y claro, me decía que no existía. Entonces, si hubiese creado la rama y luego hago el checkout ya la tendría como en el repositorio, ¿no?

    Gracias!

  3. blaxter

    git checkout origin/foo, sí. Pero si quieres seguir trabajando con git, deberías hacer el git co -b nombre_que_sea origin/foo

Los comentarios están cerrados.