GIT: Forkear un proyecto de GitHub en GitLab
En este artículos veremos como forkear un proyecto en GitHub a un repositorio en GitLab utilizando la función git upstream para crear una rama remota.
GitHub provee la opción de realizar forks sobre proyectos de otros creadores que permiten ingresar nuestras modificaciones y mantenerlo actualizado con respecto a las actualizaciones del proyecto original. Esta característica genera el fork dentro del mismo repositorio GitHub automáticamente. ¿Cómo lograr esta funcionalidad en GitLab u otro repositorio con git?
La funcionalidad de fork de GitHub puede lograrse utilizando la funcionalidad git de upstream. La función upstream crea una rama de seguimiento que se relaciona con una rama remota de un proyecto. Al actualizar la rama upstream podremos tener una versión actualizada del proyecto original y realizar nuestras modificaciones en un repositorio propio.
Forkear un projecto con GIT
El primer paso es crear un repositorio vacío en GitLab o la plataforma que utilicemos. En este ejemplo el nombre del proyecto es proyecto-local.
Luego, habiendo instalado previamente git, clonamos este repositorio localmente con la url de nuestro repositorio. Esto creará una carpeta vacía con el nombre del proyecto.
git clone git@gitlab.com:andrea.navarro/proyecto-local.git
A continuación agregamos el proyecto de GitHub como un upstream remoto utilizando la url del repositorio.
git remote add upstream https://github.com/nombreusuario/proyecto.git
Esto agregará una rama nueva al repositorio. Si listamos las ramas existentes:
git branch -a
debería mostrar dos: la rama local llamada master mostrada en verde y la rama de seguimiento mostrada en rojo que está definida como upstream.
Para obtener el proyecto original en nuestra rama local realizamos un pull del upstream. Esto actualizará los archivos en nuestra rama local.
git pull upstream master
Finalmente aplicamos los cambios a nuestro repositorio realizando un push.
git push origin master
La creación de ramas upstream puede utilizarse para realizar forks no solo desde GitHub sino para cualquier tipo de repositorios permitiéndonos realizar nuestras modificaciones a proyectos sin perdernos las modificaciones del autor . Espero que les sirva!