Clonar todas las ramas de un repositorio remoto

Al clonar un repositorio, se descarga solo la rama principal (por defecto, master). A continuación mostraré los pasos para extraer todas las ramas existentes en el repositorio remoto.

Primero, clonamos y accedemos a su directorio.

git clone git://ejemplo.com/proyecto
cd proyecto

Consultamos las rama clonada

git branch
* master

Podemos ver todas las ramas existentes del repositorio remoto
con git branch -a

$ git branch -a
* master
  remotes/origin/HEAD
  remotes/origin/master
  remotes/origin/develop
  remotes/origin/feature1
  remotes/origin/feature2

A continuación, para crear una de las ramas remotas en local:

git checkout -t remotes/origin/develop

o:

git checkout --track remotes/origin/develop

Al ejecutar, mostrará:

Branch nombreBranch set up to track remote branch nombreBranch from origin.
Switched to a new branch 'nombreBranch'

Si queremos clonar todas de una vez tenemos varías opciones:

Ejecutar este bash

#!/bin/bash
for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master `; do
   git branch --track ${branch#remotes/origin/} $branch
done

O con la opción –mirror.

git clone --mirror original-repo.git /path/cloned-directory/.git         
$ cd /path/cloned-directory
$ git config --bool core.bare false

 

 

Autor: Juan Luis García Borrego

Soy una persona responsable, activa, constante, con muchas ganas de aprender y crecer como profesional. Tengo un carácter positivo y agradable que me permite sentirme cómodo trabajando en equipo. Mis intereses profesionales se centran en torno a PHP, en concreto al framework Symfony y su ecosistema, en el cual me siento muy cómodo desarrollando y es un claro ejemplo de un software de calidad, con buenas prácticas y ‘Clean Code’.

3 opiniones en “Clonar todas las ramas de un repositorio remoto”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *