En la actualización de repositorios lo más habitual es trabajar con un repositorio local y uno remoto, pero puede que necesites actualizar 2 (o más) remotos con un único commit. De hecho lo necesité recientemente y es por eso que creo este post.
Tabla de Contenidos
- 1. Verificar estado
- 2. Cambiar el alias
- 3. Agregar más remotos
- 4. Comprobar si todo está ok
- 5. Enviar cambios
En el caso de que no estés familiarizado con el trabajo con Git, te recomiendo que pases por estas 2 entradas (con video).
- Conceptos básicos de Git: https://blog.cesarmansilla.com.ar/tutorial-de-git-para-principiantes/
- Cómo trabajar desde terminal: https://blog.cesarmansilla.com.ar/uso-basico-de-terminal/
1. Verificar estado
Seguramente en tu repositorio cuentes con un sólo remoto que por defecto se llama “origin”, esto lo podés corroborar con:
git remote -v
La salida debería ser algo como lo que sigue, y lo que indica es el nombre o alias del repositorio remoto, en nuestro caso origin, seguido de la URL (esto varía de un repositorio a otro) y luego entre paréntesis 2 etiquetas que nos indican desde dónde traemos cambios (fetch) y hacia dónde enviamos cambios (push). En nuestro ejemplo se trata del mismo remoto.
origin git@github.com:ruta/nombre-repositorio.git (fetch) origin git@github.com:ruta/nombre-repositorio.git (push)
2. Cambiar el alias
Vamos a reemplazar el nombre “origin” por uno que nos indique que estamos trabajando con más de un repositorio, se puede colocar cualquier nombre, yo lo haré con “all”:
git remote rename origin all
En este punto ya tenemos un alias (se puede checkear con “git remote -v“) que va a agrupar todos los repositorios a los que queremos hacer push con un único commit.
3. Agregar más remotos
En mi caso lo que necesité hacer es push a repositorios que tenía en Github y en Gitlab, entonces agregaría el repo de Gitlab bajo el alias “all”:
git remote set-url --add all git@gitlab.com:nombre-repositorio-en-gitlab.git
4. Comprobar si todo está ok
Nuevamente ejecutamos el comando para listar los remotos (“git remote -v”) y deberíamos nuestro nuevo remoto, algo así:
all git@github.com:ruta/nombre-repositorio.git (fetch) all git@github.com:ruta/nombre-repositorio.git (push) all git@gitlab.com:nombre-repositorio-en-gitlab.git (push)
5. Enviar cambios
Sólo resta usar nuestro nuevo alias para enviar cambios a todos nuestros remotos:
git push all master