Utilizar varios repositorios remotos con Git

Junio 13, 2014

Cuando utilizamos git como control de versiones de nuestros proyectos, lo normal es tener un repositorio central donde subir nuestros cambios, ya sea en GitHub, Bitbucket, servidor propio, etc.

Hace poco me he encontrado con la necesidad de tener que mantener dos repositorios diferentes con el mismo código, por ejemplo en Bitbucket (repositorio privado) y en GitHub (repositorio público).

Para conseguirlo, lo que tenemos que hacer es simplemente añadir un remote más.
Por ejemplo, cuando asignamos el remote de Bitbucket, lo hacemos así:

git remote add bitbucket git@bitbucket.org:user/myproject.git

Para hacer push, utilizamos el siguiente comando:

git push bitbucket master

Ahora añadimos el repositorio adicional de Github. Utilizaremos también el comando git remote:

git remote add github git@github.com:user/myproject.git

git@github.com:jonseg/crud-admin-generator.git
Y de nuevo, para hacer push al repositorio de Github utilizamos el siguiente comando:

git push github master

Personalmente prefiero tener organizados los repositorios remotos separados de esta forma y hacer el push cuando yo quiera.

Hay otra forma de hacerlo que consiste en que cada vez que hagamos un push, se actualicen los cambios al mismo tiempo en los dos repositorios remotos. Para ello, en el momento de añadir el nuevo remote tenemos que indicar los parámetros set-url con la opción –add.

En el siguiente ejemplo añado el repositorio de GitHub. Como no separamos los repositorios remotos por nombre, supongamos que tenemos un único repositorio remoto llamado origin.

git remote set-url --add origin git@github.com:user/myproject.git

De esta forma, cada vez que hagamos un push, se actualizarán los cambios tanto en Bitbucket como en Github al mismo tiempo.

CompartirTweet about this on TwitterShare on TumblrShare on FacebookShare on LinkedInShare on Google+Email this to someone

Tags ; , , , ,

Escribe un comentario

Los comentarios son moderados y se utiliza rel="nofollow" para los enlaces.