Fork
En plataformas como GitHub, un fork es una copia de un repositorio en tu cuenta que te permite experimentar con cambios libremente sin afectar al proyecto original. Un fork hace de puente entre el repositorio original y tu copia personal, lo que te permite enviar pull requests para proponer cambios al proyecto original.
¿Por qué usar forks?
Los forks se usan mucho en el desarrollo open source para contribuir a proyectos que pertenecen a otras personas u organizaciones. Al hacer un fork de un repositorio, creas tu propia copia del proyecto en tu cuenta y puedes modificarla sin afectar al código original. Esto te permite:
-
Proponer cambios: Si encuentras un error o quieres añadir una funcionalidad nueva a un proyecto, puedes hacer un fork del repositorio, aplicar tus cambios y enviar una pull request al repositorio original. Los responsables pueden revisar tus cambios y decidir si quieren fusionarlos en el proyecto principal.
-
Experimentar con libertad: Los forks te permiten probar ideas o funcionalidades nuevas sin preocuparte por romper el proyecto original. Puedes hacer cambios en tu fork sin afectar al código principal.
-
Colaborar con otras personas: Los forks permiten colaborar entre desarrolladores. Puedes invitar a otras personas a trabajar en tu fork, revisar tus cambios y aportar sus propias mejoras antes de enviar una pull request al proyecto original.
Muchos proyectos open source populares han tenido forks que la comunidad desarrolló más allá. Algunos ejemplos destacados:
-
LibreOffice: Un fork de OpenOffice. LibreOffice es una suite ofimática libre y open source que su comunidad ha desarrollado y mejorado a fondo.
-
Jenkins: Originalmente un fork de la herramienta de integración continua Hudson, Jenkins se ha convertido en un servidor de automatización open source muy utilizado.
-
Bitcoin Cash: Un fork de la criptomoneda Bitcoin. Bitcoin Cash se creó para abordar problemas de escalabilidad e implementar funcionalidades distintas.
Forks en flujos de trabajo de Git
Los forks tienen un papel clave en los flujos de trabajo de Git, sobre todo en el desarrollo open source. Un flujo de trabajo típico con forks podría ser así:
- Encuentra en una plataforma como GitHub un repositorio al que quieras contribuir.
- Haz un fork del repositorio para crear tu propia copia.
- Clona tu fork en tu ordenador.
- Crea una rama nueva para tus cambios.
- Haz tus modificaciones y crea un commit con ellas en tu rama.
- Envía tus cambios a tu fork.
- Abre una pull request desde tu fork hacia el repositorio original para proponer tus cambios.
- Los responsables del repositorio original revisan tu pull request, dan feedback y deciden si fusionan tus cambios.
Forks vs. ramas. Conviene tener claro que los forks son distintos de las ramas. Mientras que las ramas se usan dentro de un único repositorio para gestionar distintas líneas de desarrollo, los forks crean una copia separada de todo el repositorio. Los forks se usan para contribuciones externas y colaboración, mientras que las ramas se usan para el desarrollo interno y la organización dentro de un repositorio.
.gitignoregit checkoutgit configgit taggit worktree