Utilizar varios repositorios remotos con Git

2 minutos de lectura

Introducción

En mi flujo de trabajo utilizo un servidor local, gogs, para el versionado de mis ficheros de configuración, notas de org-mode, etc.

Además, utilizo gitlab para mantener ese mismo código, por lo que al final estoy manteniendo el versionando de los mismos ficheros en dos servidores diferentes.

Añadir repositorio remoto

La forma de trabajar es muy sencilla, simplmente debes añadir un nuevo repositorio remoto, por ejemplo yo voy añadir mi repositorio en gitlab

1git remote add gitlab-emacs.d git@gitlab.com:hefistion/emacs.d.git

gitlab-emacs.d Es una etiqueta identificativa del repositorio remoto git@gitlab.com:hefistion/emacs.d.git Es la url del repositorio en gitlab

Trabajando con repositorios remotos

Ver repositorios remotos

1git remote -v
2
3gitlab	git@gitlab.com:hefistion/emacs.d (fetch)
4gitlab	git@gitlab.com:hefistion/emacs.d (push)
5origin	ssh://git@192.168.1.3:222/carlos/.emacs.d.git (fetch)
6origin	ssh://git@192.168.1.3:222/carlos/.emacs.d.git (push)

Vemos que tengo configurados dos servidores remotos, origin (servidor local con gogs) y el que acabo de añadir, al que he etiquetado como gitlab

Renombrar repositorios

Si quiero cambiar de nombre a un repositorio, por ejemplo origin a gogs

1git remote rename origin gogs

Comprobamos como se ha cambiado de nombre

1
2git remote -v
3gitlab	git@gitlab.com:hefistion/emacs.d (fetch)
4gitlab	git@gitlab.com:hefistion/emacs.d (push)
5gogs	ssh://git@192.168.1.3:222/carlos/.emacs.d.git (fetch)
6gogs	ssh://git@192.168.1.3:222/carlos/.emacs.d.git (push)

Eliminar repositorio remoto

1git remote remove gitlab

Información de los repositorios

Para obtener información de de los repositorios remotos

 1
 2git remote show gitlab
 3   * remoto gitlab
 4     URL  para obtener: git@gitlab.com:hefistion/emacs.d
 5     URL para publicar: git@gitlab.com:hefistion/emacs.d
 6     Rama HEAD: master
 7     Rama remota:
 8       master rastreada
 9     Referencia local configurada para 'git push':
10       master publica a master (puede realizar fast-forward)

Trabajando con repositorios

push

Para realizar un push a un repositorio remoto

1git push gitlab master

fetch

Para descargar un repositorio

1git fetch gitlab

Solución al error de negarse a fusionar historias no relacionadas

1git pull gitlab master --allow-unrelated-histories

Espero que te haya gustado, pasa un buen día

Referencias