Fork en GitHub

Un Fork en GitHub permite crear una copia de un repositorio dentro de tu propia cuenta para trabajar sobre el proyecto sin modificar directamente el original. Es una herramienta fundamental para colaborar, experimentar con código y contribuir a proyectos mediante Pull Requests.

para que sirve y como crear un fork en github

1. ¿Qué es un Fork en GitHub?

Un Fork en GitHub es una copia de un repositorio que se crea dentro de tu propia cuenta de GitHub. El fork permite trabajar sobre un proyecto sin modificar directamente el repositorio original.

Por ejemplo, si encuentras un proyecto público en GitHub y quieres experimentar con su código, puedes hacer un fork para tener tu propia copia del repositorio. A partir de ahí puedes modificar archivos, crear ramas y realizar cambios de forma independiente.

1.1. ¿Dónde se crea un Fork?

Cuando haces un fork, GitHub crea una copia del repositorio dentro de tu cuenta. El repositorio original continúa perteneciendo a su propietario y no se modifica por las acciones que realices en tu fork.

1.2. ¿Fork y repositorio original son lo mismo?

No. Aunque inicialmente contienen el mismo código, son repositorios diferentes.

El repositorio original pertenece a su propietario o a una organización, mientras que el fork pertenece a tu cuenta de GitHub.

2. ¿Para qué sirve un Fork en GitHub?

Un fork sirve principalmente para trabajar con un repositorio que no administras directamente.

Entre sus usos más habituales se encuentran:

  • Contribuir a proyectos Open Source.
  • Proponer cambios en proyectos de otras personas.
  • Experimentar con un proyecto sin modificar el original.
  • Crear una versión propia de un proyecto.
  • Trabajar sobre el código antes de enviar una Pull Request.
  • Aprender a trabajar con proyectos existentes en GitHub.

2.1. Fork para contribuir a proyectos Open Source

Uno de los usos más importantes del fork aparece en los proyectos de código abierto.

Si no tienes permisos para escribir directamente en un repositorio, puedes hacer un fork, realizar tus modificaciones y posteriormente proponer esos cambios al proyecto original mediante una Pull Request.

3. Flujo de trabajo habitual de un Fork

Cuando quieres colaborar en un proyecto de GitHub sobre el que no tienes permisos de escritura, puedes utilizar un flujo basado en Fork, Clone, Branch, Commit, Push y Pull Request.

En resumen, el flujo habitual es:

Repositorio original
        ↓
      Fork
        ↓
      Clone
        ↓
      Rama
        ↓
   Modificar código
        ↓
      Commit
        ↓
       Push
        ↓
 Pull Request
        ↓
     Revisión
        ↓
      MergeLenguaje del código: PHP (php)

Este flujo permite que diferentes desarrolladores puedan colaborar en un mismo proyecto sin necesidad de tener permisos de escritura directamente sobre el repositorio original.

Cada etapa cumple una función diferente:

3.1. Repositorio original

Es el proyecto que pertenece a otra persona, organización o equipo. Es el repositorio sobre el que quieres realizar una contribución.

3.2. Crear un Fork

Creas una copia del repositorio original dentro de tu propia cuenta de GitHub. De esta manera puedes trabajar sobre el proyecto sin modificar directamente el repositorio original.

3.3. Clonar el Fork

Clonas tu fork en tu computadora utilizando git clone. Esto te permite disponer de los archivos del proyecto localmente y trabajar con ellos desde VS Code u otro editor.

3.4. Crear una rama

Creas una nueva rama para desarrollar tus cambios sin modificar directamente la rama principal del proyecto.

Por ejemplo:

git switch -c nueva-funcionalidadLenguaje del código: JavaScript (javascript)

3.5. Modificar los archivos

Realizas los cambios necesarios en el proyecto. Puedes agregar funcionalidades, corregir errores, modificar estilos o actualizar documentación.

3.6. Crear un Commit

Guardas los cambios realizados en el historial de Git mediante un commit. El mensaje del commit debe indicar de forma clara qué modificación realizaste.

git add .
git commit -m "Agrega nueva funcionalidad"Lenguaje del código: JavaScript (javascript)

3.7. Hacer Push

Envías los commits desde tu computadora hacia tu fork en GitHub.

git push -u origin nueva-funcionalidad

Ahora los cambios también estarán disponibles en tu repositorio de GitHub.

3.8. Crear una Pull Request

Desde tu fork puedes crear una Pull Request para proponer que tus cambios sean incorporados al repositorio original. Los responsables del proyecto podrán revisar las modificaciones antes de decidir si las incorporan.

3.9. Revisión

Los colaboradores o responsables del repositorio original pueden revisar tu código, realizar comentarios, solicitar modificaciones y comprobar que los cambios funcionen correctamente.

3.10. Merge

Si los responsables del proyecto aprueban la Pull Request, pueden hacer merge para incorporar tus cambios al repositorio original.

4. ¿Cómo hacer un Fork en GitHub?

Crear un fork desde GitHub es un proceso sencillo.

Paso 1: Buscar el repositorio

Primero debes acceder al repositorio de GitHub que quieres copiar.

Por ejemplo, puedes encontrar un proyecto público que permita realizar forks.

Paso 2: Hacer clic en Fork

Dentro del repositorio encontrarás el botón Fork.

Al seleccionarlo, GitHub mostrará las opciones para crear el fork.

Paso 3: Elegir el propietario

GitHub te permitirá seleccionar dónde quieres crear el fork.

Normalmente seleccionarás tu propia cuenta de GitHub.

Paso 4: Configurar el nuevo repositorio

Dependiendo del repositorio y de las opciones disponibles, podrás configurar algunos aspectos, como:

  • Nombre del repositorio.
  • Descripción.
  • Visibilidad.
  • Rama que quieres copiar.

Paso 5: Crear el Fork

Finalmente, selecciona la opción para crear el fork.

GitHub creará el nuevo repositorio dentro de tu cuenta.

¿Cómo saber si un repositorio es un Fork?

Después de crear un fork, GitHub indica que ese repositorio está relacionado con otro repositorio.

De esta manera puedes identificar cuál es el repositorio original y cuál es tu copia.

Esta relación es importante porque permite mantener una referencia entre ambos proyectos y facilita posteriormente la colaboración mediante Pull Requests.

5. Fork vs Clone

Fork y Clone son dos conceptos diferentes dentro del trabajo con Git y GitHub. Un Fork crea una copia de un repositorio dentro de GitHub, mientras que un Clone descarga un repositorio desde GitHub a tu computadora para poder trabajar con sus archivos localmente.

  1. ¿Qué es un Fork?
    • Un Fork es una copia de un repositorio que se crea dentro de tu propia cuenta de GitHub.
    • Por ejemplo, si existe: github.com/usuario/proyecto.
    • Al hacer un Fork puedes obtener una copia en: github.com/tu-usuario/proyecto.
    • El repositorio original continúa existiendo y tu fork se convierte en un repositorio independiente relacionado con el original.
    • El Fork se utiliza especialmente cuando quieres trabajar o colaborar en un proyecto sobre el que no tienes permisos de escritura.
  2. ¿Qué es un Clone?
    • Un Clone consiste en descargar un repositorio desde GitHub a tu computadora.
    • Por ejemplo: git clone https://github.com/tu-usuario/proyecto.git .
    • Git descarga los archivos del proyecto junto con su historial de Git y crea una carpeta local.
    • De esta manera puedes abrir el proyecto con VS Code, modificar archivos, crear commits y trabajar con Git desde tu computadora.

RESUMEN:

ForkClone
Crea una copia dentro de GitHub.Descarga una copia a tu computadora.
Se realiza desde GitHub.Se realiza utilizando Git.
Crea otro repositorio en tu cuenta.Crea una carpeta local.
Es útil para colaborar en proyectos de terceros.Es útil para trabajar localmente.
No modifica directamente el repositorio original.Permite trabajar con los archivos del repositorio en tu computadora.

Por ejemplo:

                 GitHub
                    │
          ┌─────────┴─────────┐
          ↓                   ↓
Repositorio original        Fork
                                │
                                │ git clone
                                ↓
                           Computadora
Lenguaje del código: PHP (php)

5.1. ¿Cómo hacer un Clone?

Para clonar un repositorio necesitas tener su URL.

Paso 1: Abrir el repositorio

En GitHub, entra en el repositorio que quieres clonar.

Paso 2: Seleccionar Code

Haz clic en el botón Code y copia la URL del repositorio.

Por ejemplo:

https://github.com/tu-usuario/proyecto.gitLenguaje del código: JavaScript (javascript)

Paso 3: Abrir una terminal

Puedes abrir una terminal desde la carpeta donde quieres guardar el proyecto.

En VS Code puedes utilizar:

Terminal → New Terminal

Paso 4: Ejecutar git clone

Escribe:

git clone https://github.com/tu-usuario/proyecto.git
Lenguaje del código: PHP (php)

Git descargará el repositorio y creará una carpeta con el nombre del proyecto.

Paso 5: Entrar en la carpeta

Después puedes acceder al proyecto:

cd proyecto

A partir de ese momento puedes trabajar con los archivos localmente.

5.2. ¿Cuándo utilizar Fork y cuándo Clone?

No tienes que elegir necesariamente entre uno y otro. Fork y Clone pueden formar parte del mismo flujo de trabajo.

Por ejemplo, cuando quieres colaborar en un proyecto de otra persona:

Repositorio original
        ↓
      Fork
        ↓
   Tu repositorio
        ↓
      Clone
        ↓
   Tu computadora
        ↓
 Modificar archivos
        ↓
     Commit
        ↓
      Push
        ↓
 Pull Request
        ↓
Repositorio original
Lenguaje del código: PHP (php)

En este caso, primero haces un Fork para tener tu propia copia en GitHub y después haces un Clone para descargar esa copia en tu computadora y trabajar con ella.

En pocas palabras: Fork es una copia del repositorio en GitHub, mientras que Clone es una copia del repositorio en tu computadora.

6. Actualizar un Fork

Actualizar un Fork significa sincronizar tu copia de un repositorio con los cambios que se han realizado en el repositorio original. Esto es importante porque, después de crear un Fork, el proyecto original puede seguir recibiendo nuevos commits, correcciones y mejoras que todavía no están en tu copia.

Mantener el Fork actualizado te permite trabajar sobre una versión más reciente del proyecto y reduce la posibilidad de tener conflictos cuando posteriormente quieras enviar un Pull Request al repositorio original.

6.1. ¿Por qué es importante actualizar un Fork?

Cuando creás un Fork, este representa una copia del repositorio original en ese momento. Si el proyecto original continúa evolucionando, tu Fork puede quedar desactualizado.

Por ejemplo:

Repositorio original
        │
        ├── Nuevos cambios
        ├── Correcciones
        └── Nuevas funcionalidades
                ↓
          Actualizar Fork
                ↓
        Tu Fork actualizado

De esta manera, podés continuar trabajando sobre una base más reciente antes de realizar nuevos cambios o enviar un Pull Request.

6.2. ¿Cómo actualizar un Fork?

GitHub permite actualizar un Fork desde la propia interfaz cuando existen cambios en el repositorio original.

El procedimiento general es:

  1. Entrá en tu Fork desde GitHub.
  2. Seleccioná la rama que querés actualizar, normalmente main.
  3. Buscá la opción Sync fork o la opción equivalente para sincronizar el Fork.
  4. GitHub mostrará que existen cambios en el repositorio original.
  5. Seleccioná Update branch para incorporar esos cambios a tu Fork.

Después de realizar la sincronización, tu Fork tendrá los cambios que ya existen en el repositorio original.

6.3. ¿Qué pasa si estoy trabajando con Git localmente?

También podés actualizar un Fork utilizando Git desde tu computadora. En este caso, normalmente se agrega el repositorio original como un repositorio remoto llamado upstream.

Por ejemplo:

git remote add upstream https://github.com/USUARIO/REPOSITORIO.gitLenguaje del código: JavaScript (javascript)

Después podés consultar los cambios del repositorio original:

git fetch upstream

Y actualizar tu rama local:

git switch main
git merge upstream/mainLenguaje del código: JavaScript (javascript)

Finalmente, podés enviar los cambios actualizados a tu Fork:

git push origin main

El flujo sería:

Repositorio original
        ↓
     upstream
        ↓
   git fetch
        ↓
   git merge
        ↓
     main local
        ↓
     git push
        ↓
      Tu Fork

En resumen, actualizar un Fork consiste en incorporar los cambios del repositorio original a tu propia copia. Es una práctica especialmente útil cuando el repositorio original continúa activo y querés mantener tu Fork preparado para seguir trabajando o enviar un Pull Request.

7. ¿Cómo eliminar un Fork en GitHub?

Si ya no necesitas tu fork, puedes eliminarlo desde la configuración del repositorio.

Paso 1: Entrar en el Fork

Accede al repositorio que quieres eliminar dentro de tu cuenta.

Paso 2: Abrir Settings

Selecciona Settings dentro del repositorio.

Paso 3: Buscar Danger Zone

Dentro de la configuración encontrarás la sección Danger Zone.

Paso 4: Eliminar el repositorio

Selecciona la opción para eliminar el repositorio y confirma la operación siguiendo las indicaciones de GitHub.

Importante: Eliminar tu fork no elimina el repositorio original.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *