Blog

Cómo migrar un repositorio Git de Github a Bitbucket

Contenidos

En Juice Studio, recientemente hemos migrado de usar GitHub como alojamiento para nuestros repos de código fuente a Bitbucket. Como parte de esto, hemos tenido que ir a través de todos nuestros proyectos de los clientes y migrar todos los repos que anteriormente había alojado en GitHub en nuestra cuenta corporativa Bitbucket a través de la CLI (Sí, sé que hay un asistente de importación que puede hacer esto, sin embargo, esto es para los OG por ahí que confían en nada, pero su propia ventana de Terminal). En general, es un proceso bastante sencillo, sin embargo, hay suficientes pequeños inconvenientes que pensamos que valdría la pena documentar los pasos en una entrada del blog:

1.) En primer lugar, crear un nuevo repo en Bitbucket y tomar nota de la URL (o punto final SSH) del nuevo repo.

2.) En una ventana de terminal, clonar el proyecto existente de GitHub:

git clone <URL>

3.) Actualizar tu repo local con los metadatos (nombres de rama, etiquetas, etc.) del remoto de GitHub ejecutando

git fetch –all

4.) Antes de migrar el repo a Bitbucket, tenemos que asegurarnos de que localmente en esta máquina hemos comprobado todas las ramas remotas y las tenemos en nuestro repo local. Para hacer esto es un simple script de shell que comprobará cada rama del repo en su máquina local.

for remote in `git branch -r | grep -v master `; do git checkout –track $remote ; done

5.) (Opcional) Si estás usando Git LFS para archivos grandes, entonces necesitas también obtener y bajar cualquier archivo LFS alojado en tu repo. Puedes hacerlo a través de este comando

git lfs fetch origin –all

6.) Ahora estás listo para enviar el repositorio a la nueva dirección de Bitbucket. Primero, necesitas cambiar la referencia remota en tu repositorio Git local al nuevo punto final de Bitbucket:

git remote set-url origin <dirección del repo de Bitbucket>

7.) Después de esto, haces un git push para empujar todas las ramas al remoto en Bitbucket:

git push –all

8.) No has terminado. El git push no empuja todas las etiquetas que puedas tener en tu repositorio actual. Para asegurarte de que las etiquetas también se migran, ejecuta el siguiente comando:

git push –tags

9.) (Opcional) Finalmente, si estás usando Git LFS, necesitas empujar todos los archivos LFS que descargamos en el paso 5 al nuevo repositorio. Hazlo ejecutando el siguiente comando:

git lfs push –all

Ten en cuenta que si recibes un error «exit status 255 connection closed by remote host» cuando intentas hacer el git lfs push, esto parece ser un problema con el uso del endpoint SSH para conectarse al repo de Bitbucket. Pude superar esto cambiando al punto final HTTP y volviendo a hacer el push.

Y eso es todo. En este punto el repo de Bitbucket es ahora un clon del repo de GitHub y puedes retirar el repo de GitHub con seguridad.

Artículos destacados

Artículo

From offline to online.

Comparte tus ideas con nosotros