Conseguir este post que me ayudo en esta migración que tuve que realizar de gitlab a github, espero les sirva.
A veces he tenido la necesidad de mover todo mi código de un repositorio Git a otro, no es una tarea realmente complicada, pero puedes volverte loco si no realizas los pasos adecuados.
En este artículo os presento una pequeña guía de cómo moví el código fuente de uno de mis proyectos personales hosteado en Gitlab a Bitbucket, preservando todas las ramas, etiquetas e historial de commits.
Para este ejemplo voy a usar el repositorio actual de JUnit5 publicado en GitHub como repositorio de origen. Ten en cuenta que necesitarás cambiar los repositorios usados en este ejemplo con las URLs de tus propios repositorios.
1. Clonar el repositorio completo
git clone --mirror https://github.com/junit-team/junit5.git
Una vez realizado este paso (tras entrar en el directorio recién creado) podrás comprobar que poseemos todas las ramas de forma local usando el siguiente comando:
git branch -a
También puedes comprobar que todas las etiquetas están en nuestro repositorio local escribiendo:
git tag
2. Cambiar nuestro repositorio remoto
Primero, vamos a asegurarnos que nuestro repositorio local está apuntando al antiguo repositorio listando los repositorios remotos asociados:
git remote -v
origin https://github.com/junit-team/junit5.git (fetch)
origin https://github.com/junit-team/junit5.git (push)
Luego, simplemente, eliminaremos el repositorio remoto usando:
git remote rm origin
… Y volveremos a enlazar nuestro repositorio local con el nuevo remoto:
git remote add origin https://avillalobos@mycompany.com/newrepo.git
Ahora confirmameros que nuestro repositorio local está enlazado correctamente con el nuevo repositorio remoto listando de nuevo los repositorios remotos asociados:
git remote -v
origin https://avillalobos@mycompany.com/newrepo.git (fetch)
origin https://avillalobos@mycompany.com/newrepo.git (push)
3. Enviar los datos de nuestro repositorio local al nuevo repositorio remoto
Ahora que hemos visto que nuestro repositorio local está correctamente enlazado al nuevo repositorio remoto, es hora de enviar los datos a su nuevo hogar 😉
Primero, enviaremos el contenido de todas las ramas locales al nuevo repositorio usando el siguiente comando:
git push origin --all
Por último, enviaremos también todos las etiquetas que tenemos en el repositorio local:
git push origin --tags
Con esto, hemos conseguido migrar todo el contenido de un repositorio a otro preservando todo el histórico de commits, ramas y etiquetas. ¡Bien hecho!
Fuente: enmilocalfunciona.io