Qué es un fork y para qué sirve, cuáles son los pasos para crear un fork de un repositorio Git en GitHub.
El "fork" es una de las operativas comunes con el trabajo en Git y GitHub. Básicamente sirve para crear una copia de un repositorio en tu cuenta de usuario. Ese repositorio copiado será básicamente un clon del repositorio desde el que se hace el fork, pero a partir de entonces el fork vivirá en un espacio diferente y podrá evolucionar de manera distinta, a tu propio cargo.
El fork lo podemos entender como una rama externa de un repositorio, colocando esa rama en un nuevo repositorio controlado por otros usuarios. Una vez hecho el fork existirán dos repositorios distintos. Inicialmente uno era copia exacta del otro, pero a medida que se vaya desarrollando y publicando cambios en uno u otro repo, ambos repositorios podrán tender a ser tan distintos como quieran cada uno de los equipos de desarrollo que los mantengan.
Para qué necesito un Fork
Un fork es una copia de un repositorio, pero ¿por qué no clonamos el repositorio que queremos copiar y listo?
Si haces un clon normal de un repositorio, el espacio en GitHub de ese clon seguirá asociado al repositorio que has clonado. De este modo, si realizas cambios sobre el clon y los quieres publicar en GitHub, probablemente no los podrás subir.
Obviamente, si clonas un repositorio que era tuyo, podrás realizar cambios en local y subirlos a GitHub siempre que quieras. Pero si el repositorio era de otro desarrollador y tú no tenías permisos de escritura sobre él, entonces no podrás subir cambios, porque GitHub no te lo permitirá. Para este caso es donde necesitas un fork.
Como hemos dicho, un fork es una copia de un repositorio, pero creado en tu propia cuenta de GitHub, donde sí que tienes permisos de escritura. Por tanto, si tienes intención de bajarte un repositorio de GitHub para hacer cambios en él y ese repositorio no te pertenece, lo más normal es que crees un fork primero y luego clones en local tu propio fork.
Operativa de Pull request
El fork es un paso inicial para conseguir participar en los proyectos de las otras personas que publican código en GitHub. Cualquier contribución comienza por la realización de un fork del repositorio en el que quieres colaborar.
Una vez creado el fork, puedes realizar cambios y solicitar el pull request a través de la página de GitHub, que es básicamente una solicitud para que tu código se fusione con el código del repositorio donde has colaborado.
Esta operativa de Pull Request es un poco más complicada que realizar un simple fork y de lo que hemos resumido en las anteriores líneas. Si quieres saber más te recomendamos leer el artículo sobre Pull Request.
Cómo hacer un fork en GitHub
Ahora que ya sabes qué es un fork y cuándo lo puedes necesitar, vamos a aprender a hacer un fork en GitHub. El procedimiento es tan sencillo como pulsar un botón!
Simplemente accedes al repositorio que deseas forkear, y pulsas el botón "Fork".
Tendrás que hacer login en GitHub con tu cuenta para crear un fork. Si estás dentro de alguna organización te podrá aparecer una imagen para que selecciones en qué lugar quieres crear el fork, en tu cuenta personal o en alguna de tus organizaciones.
Una vez realizado el fork se creará un nuevo repositorio en tu cuenta, con una copia del repo original. En la página de GitHub se mostrará además que este repositorio es un fork de otro repositorio, el original.
Ahora podrás perfectamente hacer el clon de este fork en local, para descargarlo en tu ordenador de desarrollo. Podrás realizar cambios en el proyecto y luego hacer el commit, para seguidamente subir los cambios a GitHub.
Como los cambios los estás subiendo en un repositorio de tu propiedad, ya que el fork está realizado en tu propia cuenta, GitHub te permitirá publicar las modificaciones realizadas.
Videotutorial de un fork en GitHub
En el siguiente vídeo verás la operativa de realización de un fork en GitHub. Verás cómo realizamos un fork de un repositorio que no nos pertenece. Luego clonaremos el repositorio en local y realizaremos algunos cambios en su código.
Finalmente en el vídeo verás cómo se suben esos cambios a GitHub y cómo el repositorio nuestro, el fork, se ha actualizado correctamente.
Es un proceso sencillo, que es la antesala del procedimiento que tienes que realizar para colaborar con tu código en los proyectos de otras personas. Todo eso lo veremos más adelante, en el artículo de Pull Request en GitHub.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...