Introducción
En este módulo, aprenderás sobre dos conceptos fundamentales para la colaboración en proyectos de código abierto y en equipos distribuidos: Forking y Pull Requests. Estos mecanismos permiten a los desarrolladores trabajar en sus propias copias de un proyecto y luego proponer cambios para ser integrados en el proyecto original.
¿Qué es Forking?
Forking es el proceso de crear una copia personal de un repositorio en tu cuenta de GitHub. Esta copia es independiente del repositorio original, lo que te permite experimentar y hacer cambios sin afectar el proyecto principal.
Pasos para Hacer un Fork
- Navega al Repositorio Original: Ve al repositorio del proyecto que deseas forkear en GitHub.
- Haz Click en el Botón "Fork": Este botón generalmente se encuentra en la esquina superior derecha de la página del repositorio.
- Selecciona tu Cuenta: Si tienes acceso a múltiples cuentas u organizaciones, selecciona dónde deseas crear el fork.
Ejemplo Práctico
Supongamos que quieres forkear el repositorio octocat/Spoon-Knife
.
- Ve a
https://github.com/octocat/Spoon-Knife
. - Haz click en el botón "Fork".
- Selecciona tu cuenta personal.
Ahora tendrás una copia del repositorio Spoon-Knife
en tu cuenta de GitHub (tu-usuario/Spoon-Knife
).
Clonando tu Fork
Después de forkar un repositorio, el siguiente paso es clonarlo en tu máquina local para empezar a trabajar en él.
Haciendo Cambios en tu Fork
Puedes hacer cambios en tu fork de la misma manera que lo harías en cualquier otro repositorio de Git. Aquí hay un ejemplo básico:
-
Crea una Nueva Rama: Es una buena práctica trabajar en una rama separada.
git checkout -b mi-nueva-rama
-
Haz Cambios y Confirma: Realiza los cambios necesarios y confirma.
echo "print('Hola, mundo!')" > hola.py git add hola.py git commit -m "Añadir script de saludo"
-
Empuja los Cambios a tu Fork:
git push origin mi-nueva-rama
¿Qué es un Pull Request?
Un Pull Request (PR) es una solicitud para que los mantenedores del repositorio original revisen e integren tus cambios. Es una forma de contribuir a proyectos de código abierto o colaborar en proyectos de equipo.
Creando un Pull Request
- Navega a tu Fork en GitHub: Ve a la página de tu fork en GitHub.
- Selecciona la Rama: Cambia a la rama en la que has hecho los cambios.
- Haz Click en "New Pull Request": Este botón generalmente se encuentra en la página principal del repositorio.
- Completa el Formulario: Proporciona un título y una descripción detallada de los cambios que has hecho.
- Crea el Pull Request: Haz click en "Create Pull Request".
Ejemplo Práctico
Supongamos que has hecho cambios en la rama mi-nueva-rama
de tu fork tu-usuario/Spoon-Knife
.
- Ve a
https://github.com/tu-usuario/Spoon-Knife
. - Cambia a la rama
mi-nueva-rama
. - Haz click en "New Pull Request".
- Completa el formulario con un título y una descripción.
- Haz click en "Create Pull Request".
Revisando y Fusionando Pull Requests
Una vez que has creado un Pull Request, los mantenedores del repositorio original pueden revisarlo. Pueden hacer comentarios, solicitar cambios o fusionar el PR.
Proceso de Revisión
- Revisión de Código: Los mantenedores revisarán tu código y pueden dejar comentarios.
- Solicitar Cambios: Si se requieren cambios, puedes hacerlos en tu rama y empujarlos nuevamente.
git add archivo-modificado.py git commit -m "Realizar cambios solicitados" git push origin mi-nueva-rama
- Fusión: Una vez que el PR es aprobado, los mantenedores pueden fusionarlo en la rama principal del proyecto.
Ejercicio Práctico
Ejercicio 1: Fork y Pull Request
- Forkea un Repositorio: Forkea el repositorio
octocat/Spoon-Knife
. - Clona tu Fork: Clona tu fork en tu máquina local.
- Crea una Nueva Rama: Crea una nueva rama llamada
mi-cambio
. - Haz un Cambio: Añade un archivo llamado
contribucion.txt
con el contenido "Mi primera contribución". - Confirma y Empuja los Cambios: Confirma y empuja los cambios a tu fork.
- Crea un Pull Request: Crea un Pull Request desde tu rama
mi-cambio
hacia la rama principal del repositorio original.
Solución
- Forkea el repositorio
octocat/Spoon-Knife
. - Clona tu fork:
git clone https://github.com/tu-usuario/Spoon-Knife.git cd Spoon-Knife
- Crea una nueva rama:
git checkout -b mi-cambio
- Añade el archivo
contribucion.txt
:echo "Mi primera contribución" > contribucion.txt git add contribucion.txt git commit -m "Añadir contribucion.txt"
- Empuja los cambios:
git push origin mi-cambio
- Crea un Pull Request en GitHub desde la rama
mi-cambio
hacia la rama principal del repositorio original.
Conclusión
En esta sección, has aprendido cómo forkar un repositorio, hacer cambios en tu fork y crear un Pull Request para contribuir al proyecto original. Estos son pasos esenciales para colaborar en proyectos de código abierto y trabajar en equipo de manera eficiente. En el próximo módulo, exploraremos cómo realizar revisiones de código con Git.
Dominando Git: De Principiante a Avanzado
Módulo 1: Introducción a Git
Módulo 2: Operaciones Básicas de Git
- Creando un Repositorio
- Clonando un Repositorio
- Flujo de Trabajo Básico de Git
- Preparando y Confirmando Cambios
- Visualizando el Historial de Confirmaciones
Módulo 3: Ramas y Fusión
- Entendiendo las Ramas
- Creando y Cambiando Ramas
- Fusionando Ramas
- Resolviendo Conflictos de Fusión
- Gestión de Ramas
Módulo 4: Trabajando con Repositorios Remotos
- Entendiendo los Repositorios Remotos
- Añadiendo un Repositorio Remoto
- Obteniendo y Extrayendo Cambios
- Empujando Cambios
- Rastreando Ramas
Módulo 5: Operaciones Avanzadas de Git
- Rebasing
- Cherry-Picking de Confirmaciones
- Guardando Cambios
- Etiquetando Confirmaciones
- Revirtiendo Confirmaciones
Módulo 6: Herramientas y Técnicas de Git
Módulo 7: Estrategias de Colaboración y Flujo de Trabajo
- Forking y Pull Requests
- Revisiones de Código con Git
- Flujo de Trabajo Git Flow
- GitHub Flow
- Integración Continua con Git
Módulo 8: Mejores Prácticas y Consejos de Git
- Escribiendo Buenos Mensajes de Confirmación
- Manteniendo un Historial Limpio
- Ignorando Archivos con .gitignore
- Mejores Prácticas de Seguridad
- Consejos de Rendimiento
Módulo 9: Solución de Problemas y Depuración
- Problemas Comunes de Git
- Deshaciendo Cambios
- Recuperando Confirmaciones Perdidas
- Tratando con Repositorios Corruptos
- Técnicas Avanzadas de Depuración