Supongamos que hemos montado nuestro propio servidor git donde hospedar nuestros repositorios git bare y deseamos duplicar o mover uno de ellos. Este artículo explica cómo hacerlo utilizando la opción --mirror
.
El objetivo del artículo consiste en duplicar un repositorio git desde un servidor a otro. Tenemos un repositorio git alojado en un servidor, y deseamos mover o duplicar su contenido a un repositorio git vacío que hemos creado en un servidor nuevo.
Si se dispone de acceso a una shell en ambos servidores, es posible duplicar o mover un repositorio git bare desde un servidor al otro simplemente copiando el directorio, ya sea utilizando scp o directamente un túnel SSH.
Sin embargo, si no contamos con acceso a una shell (sólo SSH a través de git-shell
), será necesario recurrir a git. El comando push
incluye la opción --mirror
la cual permite duplicar un repositorio.
A modo de ejemplo, necesitamos mover el repositorio "linuxito" desde el servidor "repo.linuxito.com" al servidor "www.cliente.com".
Desde una máquina cliente, clonar el repositorio origen:
$ git clone ssh://Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. :22/var/repo/linuxito.git
Luego cambiar al directorio clonado y ejecutar el comando push --mirror
hacia el servidor destino:
$ cd linuxito/ $ git push --mirror ssh://Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. :22/var/repo/linuxito.git
La opción --mirror
indica que, en lugar de especificar una a una las referencias a subir, se suban todas las referencias bajo refs/
(lo cual incluye refs/heads/
, refs/remotes/, refs/tags/
, etc.) duplicando efectivamente el repositorio.
Referencias
Fuente: linuxito